让我们从一些基本的控制器动作开始:
public class FeiertagController
{
IFeiertagService feiertagService = new FeiertagService();
public ActionResult EditFeiertag()
{
// ... return your main edit view
return View();
}
// Will be called by your jquery ajax call
public PartialResult GetFeiertagTable()
{
var feiertagData = messageService.getLatestFeiertagData();
var viewModel = new FeiertagViewModel();
feiertagViewModel.feirtagTableData = feiertagData;
return PartialView("FeiertagTableView", viewModel);
}
}
因此,EditFeiertag() 用于呈现整个编辑页面,并且该页面在想要异步呈现部分视图时会调用 GetFeiertagTable()。
现在,在您看来,假设您有类似的东西:
<div id="Container">
<div id="LeftPanel">
// ... Some menu items
</div>
<div id="RightPanel">
<a id="ReloadLink" href="#">Reload Table</a>
<div id="FeiertagTable>
<% Html.RenderPartial("FeiertagTable", Model.feiertagTableData); %>
</div>
</div>
</div>
这工作正常,将加载您的表一次。但是,如果您单击某个元素(在我们的例子中为#ReloadLink),您希望重新加载 Feiertag 表。
将以下内容添加到
页面的一部分:
<head>
<script src="../../Scripts/Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#ReloadLink').click(function(e)
{
e.preventDefault(); // stop the links default behavior
$('#FeiertagTable').load('/Feiertag/GetFeiertagTable');
});
});
</script>
</head>
然后,这将为您的重新加载链接添加一个单击事件,该事件将调用 jquery load() 方法。该方法是一个简化的 ajax get 请求,它将用返回的内容替换所选 div (FeiertagTable) 的内容。
我们的 GetFeiertagTable() 控制器操作将返回部分视图,然后将其插入到该 div 中。
我希望这能让你指出正确的方向!