对于一个项目,我需要一种动态加载部分视图的方法,最好是通过jquery / ajax。
下面是我需要的功能:
如果可能的话,这一切都应该得到公正的对待。
我读过一些关于动态加载部分的内容,但是我想重新发布完整的案例,这样我就可以为这个特定的案例找到最好的解决方案。
发布于 2011-04-07 21:00:01
假设你有一个下拉列表:
@Html.DropDownListFor(
x => x.ItemId,
new SelectList(Model.Items, "Value", "Text"),
new {
id = "myddl",
data_url = Url.Action("Foo", "SomeController")
}
)您可以订阅该下拉列表的.change()事件,并向控制器动作发送AJAX请求,该操作将返回部分结果并将结果注入DOM:
<script type="text/javascript">
$(function() {
$('#myddl').change(function() {
var url = $(this).data('url');
var value = $(this).val();
$('#result').load(url, { value: value })
});
});
</script>并将DIV标记放置在主机视图中希望部分视图呈现的位置:
<div id="result"></div>在Foo操作中,可以返回一个部分视图:
public ActionResult Foo(string value)
{
SomeModel model = ...
return PartialView(model);
}发布于 2011-04-07 20:57:48
您应该处理combobox的值更改事件,获取选中的Id,然后使用ajax调用服务器操作,传递所选Id。服务器操作将返回相应的视图。在客户端,您将返回的视图填充到页面上的某个区域。
例如,服务器端操作:
public ActionResult GetView(int id)
{
switch (id)
{
case 1:
return View("View1", model1);
break;
case 2:
return View("View2", model2);
break;
default:
return View("Default", modelDefault);
}
}https://stackoverflow.com/questions/5587485
复制相似问题