在asp.net MVC 4中动态呈现部分视图

本文关键字:现部 视图 动态 asp net MVC | 更新日期: 2023-09-27 18:03:45

我正忙着调查以下可能性:

我有一个"搜索"视图。我有3个实体,Person, Car和House。我想使用这个Search屏幕根据用户选择的实体类型动态地构建搜索条件。

如果用户想搜索'Person',那么我想动态返回Person特定搜索条件的部分视图,比如Name。或者,如果他们选择了Car,它返回一个不同的局部视图,搜索条件为'引擎大小'等。

如何做到这一点?如果我可以通过对控制器方法的ajax调用返回部分视图(以避免回发),那将是一个巨大的好处。

在asp.net MVC 4中动态呈现部分视图

首先在它们各自的div中渲染你的部分,像这样

<div id="personSearch">
    @Html.Partial("PartialView1")
</div>
<div id="carSearch">
    @Html.Partial("PartialView1")
</div>
<div id="houseSearch">
    @Html.Partial("PartialView1")
</div>

jQuery代码,我们首先隐藏所有这3个过滤器,然后我们可以动态地应该div的根据用户选择的标准

所以像这样

$(function()
{
    // Hide all divs
    $('#personSearch').hide();
    $('#carSearch').hide();
    $('#houseSearch').hide();
    // This is the ID of a dropdownlist for Person, Car or House selection
    $('#UserCriteria').change(function ()
    {
        var value = $(this).val();
        // 1 id the int id for Person
        if(value == 1)
        {
            $('#personSearch').slideDown();
            $('#carSearch').slideUp();
            $('#houseSearch').slideUp();
        }
        // 2 id the int id for Car
        if(value == 2)
        {
            $('#personSearch').slideUp();
            $('#carSearch').slideDown();
            $('#houseSearch').slideUp();
        }
        // 3 id the int id for House
        if(value == 3)
        {
            $('#personSearch').slideUp();
            $('#carSearch').slideUp();
            $('#houseSearch').slideDown();
        }
    }.change();
});

所以我们真正在这里做的,基本上是渲染所有的部分视图到页面上,但是使用。change()在我们的$('#UserCriteria')如果默认值是null什么都不会发生,但是如果默认值是"Person" (id = 1). personSearchdiv将滑下并将显示你的部分视图。

我希望这是你正在寻找的:)