加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 动态加载部分视图

发布时间:2020-12-15 22:48:51 所属栏目:asp.Net 来源:网络整理
导读:对于一个项目,我需要一种动态的加载部分视图的方法,最好是通过 jquery / ajax. 以下是我需要的功能: 用户输入表单.显示一个下拉列表,并使用一些输入控件呈现通用的部分视图. 用户在下拉列表中选择不同的值 部分视图刷新.根据下拉列表的值,它应该加载部分视
对于一个项目,我需要一种动态的加载部分视图的方法,最好是通过 jquery / ajax.

以下是我需要的功能:

>用户输入表单.显示一个下拉列表,并使用一些输入控件呈现通用的部分视图.
>用户在下拉列表中选择不同的值
>部分视图刷新.根据下拉列表的值,它应该加载部分视图.某些值具有与它们相关联的自定义视图(我可以使用主键来命名它们),而另一些则没有.当没有自定义视图;它应该加载默认值.当有一个,它当然应该加载定制的.

所有这些都应该在可能的情况下进行评估.

我已经阅读了关于动态加载部分内容的一些事情,但是我想转载整个案例,所以我可以找到这个具体案例的最佳解决方案.

解决方法

假设你有一个下拉列表:
@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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读