2015-09-21 3 views
0

У меня есть этот видКак передать параметры частичного виду

@model IEnumerable<Helpdesk.Infrastructure.Tools.IdNameSurname> 

<div class="col-lg-12"> 
     <div class="user-select"> 
      <span style="display: inline-block">Show timesheet for user</span> 
      <div class="user-select-dropdown"> 
       <select class="form-control"> 
        <option value="" disabled selected>Select user...</option> 
        @Url.Action("Timesheet", "Administrator") 
        @foreach (var users in Model) 
        { 
         <option value="@users.Id">@users.Name @users.Surname</option> 
        } 
       </select> 
      </div> 
     </div> 
     @{ 
      Html.RenderPartial("PartialTimesheet", new { userId = ??? }); 
     } 
    </div> 

Как я могу присвоить мое выберите значение параметра для моего RenderPartial зрения?

+2

Вы не можете. 'Html.RenderPartial' генерируется на сервере до его отправки клиенту. Если вы хотите отвечать на события на стороне клиента, вам нужен javascript и ajax, чтобы вызвать метод контроллера, который возвращает частичный вид –

ответ

2

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

Итак, правильный способ сделать это - использовать javascript. Вот шаги:

  1. Подготовьте контроллер. Он должен вернуть PartialView.
  2. В вашем javascript-коде получите значение раскрывающегося списка.
  3. Сделайте вызов Ajax контроллеру PartialView, чтобы получить соответствующий вид.
  4. Отобразить представление.

Код, вы можете посмотреть here. Это для переключателя, но для dropdownlist то же самое.

+0

. Ok, мое частичное представление будет называться angularjs, но как я могу получить значение моего раскрывающегося списка? – HUSTLIN

+0

Используйте это: '$ ('# dropDownId: selected'). Text();'. Вот ответ [link] (http://stackoverflow.com/questions/2780566/get-selected-value-of-a-dropdowns-item-using-jquery). – AnhTriet

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