您可以使用内置的MVC AJAX帮助程序。大致如下......
声明一些AJAX选项:
@{
AjaxOptions ajaxOpts = new AjaxOptions { UpdateTargetId = "target" };
}
然后使用AJAX BeginForm方法声明表单:
@using (Ajax.BeginForm("GetData", ajaxOpts))
{
@* Here you put your form data. I'm guessing your popup could just be a DIV that gets positioned and made visible *@
}
你的目标,更新,当AJAX请求回来只是一个简单的DIV:
<div id="target">
@* The output of your GetData controller method will end up here *@
@Html.Action("GetData", new { model = Model })
</div>
然后在你的控制器中有东西在返回包含您的数据的部分视图:
public PartialViewResult GetData(ViewModel model)
{
// Do some stuff here to fetch some data
// ViewModel will be whatever your view model is called
return this.PartialView("GetData", model);
}
这是获取AJAX工作的基础知识。如果您想要将HTML发回浏览器并更新页面的不同位,您必须添加一个jQuery函数,通过为AjaxOptions的OnComplete参数指定一个函数来获取AJAX帮助程序。
来自您的部分视图的数据可能会包含一些隐藏的HTML块,您可以在浏览器中的其他位置移动该块。
不幸的是,MVC AJAX帮助程序只支持一个UpdateTargetId。
编辑补充
你需要在你的web配置文件来设置此在的appSettings:
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
您还需要包括在HTML输出jQuery的扩展名(也许在你的_Layout.cshtml文件?):
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>