您可以使用內置的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>