2011-07-10 9 views
0

ユーザーがインデックスページで[新規追加]ボタンをクリックしたときにビューをレンダリングします。私は作成ポストを処理するコントローラ内にアクションを持っています。ここでの問題は、ビューをロードできないことです。 "Add New"ボタンをクリックすると、何も起こりません。誰かが私がここで何が欠けているのかを指摘してくれる?モデルポップアップでビューを開くことができませんmvc 3

これは私のIndexビューがどのように見えるかです:私は

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 

Layout.cshtml

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewBag.Title</title> 


    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> 


</head> 

<body> 
    @RenderBody() 
</body> 
</html> 

--Solution--

<script type="text/javascript"> 

    $(function() { 
     $('#dialog').dialog({ 
      autoOpen: false, 
      width: 400, 
      resizable: false, 
      title: 'Add New Item', 
      modal: true, 
      open: function (event, ui) { 
       $(this).load('@Url.Action("Country/Create")'); 
      }, 
      buttons: { 
       "Close": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     $('#AddNew').click(function() { 
      alert('Hello'); 
      $('#dialog').dialog('open'); 
     }); 
    }); 
</script> 

<button id="AddNew" type="button">Add New</button> 

<div id="dialog" style="overflow: hidden;"> 

</div> 

のスクリプト参照jqueryが見つかりませんでした。 ui.all.cssリファレンス。

<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" /> 
+0

あなたはUrl.Actionヘルパーにコントローラとアクションを提供方法...国/ Create..try分割この間のJavascriptコード。また、あなたのルート設定を投稿したくないかもしれません。また、ボタンをクリックするとFirebugに何が起きるかチェックしてください。 – mare

+0

@Asdfg:コントローラの動作が呼び出されますか?あなたはFirebugで何を見ますか? –

+0

$( "#dialog")と言っているfirebugにエラーがあります。ダイアログは機能ではありません。 – Asdfg

答えて

0

---------あなたのURLフォーマットも間違っていると思います二つのパラメータにおそらく

$(document).ready(function() { 
... 
}); 
+0

運がないことを(http://chat.stackoverflow.com/rooms/1308/discussion-between-asdfg-and-praveen-prasad)何とか私は理由を知りませんが、Country/Createが実行された後にJSファイルが読み込まれます。そして、私はそれをFirebugで見ることができます。なぜそれをやっているのか、それが問題なのかどうかは考えられません。 – Asdfg

+0

私はあなたのスクリプトのリファレンスは、マスターまたはレイアウトページのファイルとその最後にあると思いますか? – mare

+0

レイアウトファイルにあります。レイアウトビューで質問を更新しました。 – Asdfg

0
I **think** your file order is wrong 

jquery-1.5.1.min.js 
jquery-ui-1.8.11.min.js 

now other files 

-------------私はあなたを入れてみてください

@Url.Action("Action","Cortoller"); 
@Url.Action("Create","Country"); 
$(this).load('@Url.Action("Create","Country")'); 
+0

私にそのことを知らせるかどうか?? –

+0

それは働いた。助けてくれてありがとう。私はまだポップアップを開いていないという問題に直面しています。これは、インデックスページにレンダリングするだけです。ポップアップが表示されません。 – Asdfg

+0

アラートは機能していますか?そうでない場合、dialog.open()は呼び出されません – mare

関連する問題