动态加载部分视图

2023-11-21

对于一个项目,我需要一种加载部分视图的动态方式,最好是通过 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(使用前将#替换为@)

动态加载部分视图 的相关文章

随机推荐