对于一个项目,我需要一种动态加载部分 View 的方式,最好是通过 jquery/ajax。
这是我需要的功能:
如果可能,这一切都应该被 ajaxified。
我已经阅读了一些关于动态加载部分的内容,但我想重新发布完整的案例,以便我可以找到针对这个特定案例的最佳解决方案。
最佳答案
假设您有一个下拉列表:
@Html.DropDownListFor(
x => x.ItemId,
new SelectList(Model.Items, "Value", "Text"),
new {
id = "myddl",
data_url = Url.Action("Foo", "SomeController")
}
)
您可以订阅
.change()
此下拉列表的事件并将 AJAX 请求发送到 Controller 操作,该操作将返回部分并将结果注入(inject) DOM:<script type="text/javascript">
$(function() {
$('#myddl').change(function() {
var url = $(this).data('url');
var value = $(this).val();
$('#result').load(url, { value: value })
});
});
</script>
并在您希望在主机 View 中呈现局部 View 的位置放置一个 DIV 标记:
<div id="result"></div>
在 Foo Action 中,您可以返回部分 View :
public ActionResult Foo(string value)
{
SomeModel model = ...
return PartialView(model);
}
关于asp.net-mvc - 动态加载局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587485/