使用MVC局部视图异步填充jquery模式对话框,并显示在屏幕中心
我正在尝试使用jquery模式对话框在单击某些内容时显示部分视图异步。 很简单,有很多问题,但我似乎无法让它工作。 我有模态显示,但不在中心。 我读过它是因为我在显示对话框后填充div,因此位置相对于空div而不是填充的div – 我通过显示一些静态内容certificate了这一点,它很好。
所以现在,我首先尝试获取局部视图,然后在load()回调中显示对话框,但它不起作用。 我在’dialog(’open’)行上出错,因为对话框方法未定义。 这是我的代码:
(PS我是javascript / jQuery的新手,很抱歉,如果这很明显)
$(function () { $('#my-dialog').dialog({ autoOpen: false, width: 400, resizable: false, modal: true }); }); $(document).ready(function() { $('#show-modal').click(function() { $('#my-dialog').load("@Url.Action("MyActionOnController")", function() { $('#my-dialog').dialog('open'); }); return false; }); }); Click Me
帮助赞赏!
编辑我已经更改了代码以匹配Darin并上传了一个图像,显示问题出现了什么?
您的代码看起来很好,并且在我测试它时它可以工作。 这是我的完整测试用例:
控制器:
public class HomeController : Controller { public ActionResult Index() { return View(); } public ActionResult MyActionOnController() { // TODO: You could return a PartialView here of course return Content("Hello world", "text/html"); } }
查看(〜/ Views / Home / Index.cshtml):
@{ Layout = null; } Test Click Me
好的,我发现了问题:
我为modal dialog返回的局部视图是使用MVC脚手架创建的一个编辑视图,默认情况下包含一些已经包含在布局页面中的jQuery脚本,这些脚本必然导致了问题。
一切都很好!
可能的范围问题?
您正在有效地声明两个document.ready
函数。 只需将所有代码放入:
$(function () { });
- 将int数组传递给MVC Controller
- 使用ASP.NET MVC的jquery – 调用启用了ajax的Web服务
- 使用jQuery UI SelectMenu插件主题的选择列表上的jQueryvalidation
- MVC3 jQuery getJSON不会发出调用
- url.content(…)喜欢jquery或javascript中的方法?
- jquery ajax调用JsonResult控制器方法在IIS6上调用404
- 显示从Asp.Net MVC中的Controller返回的JSON数组数据
- Javascript Windows.Location传递复杂的JSON对象
- 与jQueryvalidation绑定的单选选项不起作用