0

В моем основном частичном представлении у меня есть один раскрывающийся список языков, и после него у меня есть частичный вид, который показывает дочерние элементы этой страницы с условием, что свойство языка соответствует выпадающему списку выбранного значения. По умолчанию будут показаны все дочерние элементы.обновить частичный вид на выбор изменения

<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> 

Таким образом, представление должно обновляться в соответствии со значением раскрывающегося списка. Итак, как это можно достичь?

Частичный вид выглядит, как показано ниже.

@{ 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 скрипт, чтобы связать событие изменения в SelectList:

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

Посмотрите на эту ссылку, чтобы узнать, как bind a partial view via ajax.

Затем передайте действие контроллера идентификатору опции или тексту. Проверьте в Интернете, как получить выбранную опцию элемента select.

Если вы думаете о шагах или seudo коде: // Клиент 1. Bind изменения событие выбора элемента 2. Получить выбранный вариант идентификатор или текст - в зависимости от того, что вы хотите 3. Сделать Аякс вызовите действие контроллера, при успешном завершении частичного просмотра.

// Действие контроллера 1. Используйте опцию идентификатора/вариант текст, чтобы получить то, что когда-либо данные, вам нужно и вернуть ViewModel/вид -> это должно быть таким же, как то, что вы имеете в своем частичном виде

+0

I я новичок в этом ... так что можно описать больше ... и хотеть конкретные дочерние элементы .. так как я могу достичь? – ghetal

+0

фактически я не использую никакой модели для рендеринга как таковой. Но хотите отобразить частичный вид umbraco, как указано в моем вопросе. Итак, могу ли я вернуть только представление для рендеринга без модели? – ghetal

+0

ya вы можете сделать это – JustLearning

Смежные вопросы