2015-07-20 62 views
1

我正在調查以下幾種可能性:動態渲染ASP .NET中的局部視圖MVC 4

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

如果用戶想要搜索'Person',那麼我想動態地返回Person的特定搜索條件的部分視圖,如Name。或者,如果他們選擇了Car,它會返回「Engine Size」等搜索條件的不同局部視圖。

如何實現此目的?如果我可以通過對控制器方法的ajax調用返回部分視圖(以避免回發),那將是一個巨大的好處。

+2

在這裏閱讀答案:http://stackoverflow.com/questions/7430976/rendering-partial-views-using-ajax – Kram

+0

你可以用這個存檔如果您不介意將jQeury添加到您的解決方案,請告訴我:) – Canvas

+0

完全不是,請提供一個答案, –

回答

0

首先使所有的諧音在他們自己的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(); 
}); 

所以,我們真正在這裏做,基本上呈現到頁面的所有部分觀點,但使用的.c如果默認值爲null,則$('#UserCriteria')上的hange()將不會發生,但是如果默認值爲「Person」(id = 1)。 personSearch div將滑動並顯示您的部分視圖。

我希望這是你要找的人:)