对于一个项目,我需要一种加载部分视图的动态方式,最好是通过 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 请求,该操作将返回部分内容并将结果注入到 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)