0

在我的主要部分視圖中,我有一個語言dropdownlist,之後我有部分視圖顯示此頁面的子項,條件是語言屬性與下拉列表選定值相匹配。默認情況下,所有的子項目都會顯示出來。刷新局部視圖在選擇變化

<div class="rtd"> 
        @{ 
        var slang=new SelectList(
        new List<SelectListItem> 
        { 
         new SelectListItem { Selected = true, Text = "All", Value = ""}, 
         new SelectListItem { Selected = false, Text = "English", Value = "English"}, 
         new SelectListItem { Selected = false, Text = "Gujarati", Value = "Gujarati"}, 
         new SelectListItem { Selected = false, Text = "Hindi", Value = "Hindi"}, 
        }, "Value" , "Text", 1); 
        @Html.DropDownList("drpLang", @slang, new { @class = "dropdown"}) 

</div> 

<div class="list"> 
     @Html.Partial("_List") 
</div> 

因此,視圖應根據dropdownlist的值刷新。那麼,這是如何實現的?

部分視圖如下所示。

@{ var selection = CurrentPage.Children.Where("Visible").Where("language=\"English\""); } 

@if (selection.Any()) 
{ 
<ul> 
     @foreach (var story in selection) 
     { 
     <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story.Url" class="st-text"> @story.Name</a></li> 
     } 


</ul> 
} 

回答

1

你可以寫一個jQuery腳本來選擇列表的變化綁定事件:

function BindSelectChange(){ 
     $('select').on('change',function(){ 
      // make an ajax call to your controller action 
      $.ajax({ 
       url:'/ControllerName/Action', 
       .... 
      }); 
     }); 
} 

看看這個鏈接瞭解如何bind a partial view via ajax

然後通過控制器操作選項ID或文本。檢查網頁上如何獲得select元素的選定選項。

如果你仔細想想的步驟或seudo代碼: //客戶 1.綁定選擇元素的變化情況 2.獲取所選擇的選項標識或文本 - 這取決於你想要 3.一個ajax什麼調用控制器動作,成功重新綁定局部視圖。

//控制器動作 1.使用選項編號/選項的文本,讓你需要什麼都數據並返回一個視圖模型/視圖 - >這應該是一樣的,你有你的部分觀點

+0

我什麼對此我是新的...所以你可以描述更多...並且想要特定的兒童項目..那麼我該如何實現? – ghetal

+0

實際上我沒有使用任何模型來渲染。但是想要渲染umbraco partialview,就像我的問題中指定的那樣。那麼,我可以只返回視圖來渲染模型嗎? – ghetal

+0

你可以這樣做 – JustLearning