簡體   English   中英

在ASP .NET MVC 4中動態呈現部分視圖

[英]Dynamically rendering a partial view in ASP .NET MVC 4

我正忙於研究以下方面的可能性:

我有一個“搜索”視圖。 我有3個實體,人,汽車和房屋。 我想使用此搜索屏幕根據用戶選擇的實體類型動態構建搜索條件。

如果用戶要搜索“人員”,那么我想動態返回針對人員特定搜索條件(例如姓名)的部分視圖。 或者,如果他們選擇了Car,則它將返回不同的局部視圖,以查找“引擎尺寸”等搜索條件。

如何做到這一點? 如果我可以通過對控制器方法的ajax調用返回部分視圖(以避免回發),那將是巨大的收獲。

首先,像這樣將所有部分文件渲染到自己的div中

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

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

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

jQuery代碼,我們首先隱藏所有這三個過濾器,然后我們可以根據用戶選擇的條件動態地使用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();
});

因此,我們實際上在這里所做的基本上是將所有部分視圖呈現到頁面上,但是如果我們的$('#UserCriteria')使用.change()如果默認值為null,則什么都不會發生,但是如果默認值是“人”(id = 1)。 personSearch div將向下滑動並顯示您的部分視圖。

我希望這就是你想要的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM