2011-07-10 91 views
0

我想要在用户单击索引页上的“添加新”按钮时呈现视图。我在处理Create post的控制器中有一个Action。这里的问题是,我无法加载视图。当我点击“添加新的”按钮时,没有任何反应。有人能指出我在这里错过了什么吗?无法在模型弹出窗口中打开视图mvc 3

这是我的索引视图的样子:

<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> 

脚本引用:

<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--

我错过了jquery。 ui.all.css参考。

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

可能是您为Url.Action helper提供控制器和操作的方式...... Country/Create..try将其分成两个参数。你也可能不想发布你的路由配置。同时检查Firebug当你点击按钮时会发生什么。 – mare

+0

@Asdfg:你的控制器动作是否被调用?你在Firebug中看到了什么? –

+0

我在firebug中看到一个错误,说$(“#dialog”)。dialog不是函数。 – Asdfg

回答

0

尝试把你的Javascript code between

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

没有运气。不知何故,我不知道为什么,但国家/创建执行后加载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格式也是错误---------

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

让我知道,作品与否? –

+0

它的工作。谢谢您的帮助。我仍然面临不打开弹出窗口的问题。它只是在索引页面上呈现。没有弹出窗口。 – Asdfg

+0

警报正在工作?如果没有,那么你的dialog.open()没有被调用 – mare

相关问题