2017-02-16 7 views
0

У меня есть указатель, который является первой страницей моего сайта. У меня есть 3 каскадных выпадающих листа на странице, выпадающие списки заполняются на основе предыдущего раскрывающегося списка. Я использовал jquery и json, чтобы решить, что он работает нормально, весь код находится на Index.cshtml.Отдельный код в представлениях mvc

Теперь мне нужно показать эти выпадающие списки почти на всех страницах веб-сайта. Я создал частичный вид, где я скопировал выпадающие, как вы можете увидеть здесь:

<div class="col-sm-4"> 
    <div style="padding-top:15px;"> 
     <form class="form-control-static"> 
      <div class="form-group"> 
       <div class="row"> 
        <div class="col-sm-10"> 
         @if (ViewData.ContainsKey("makes")) 
         { 
          @Html.DropDownList("makes", ViewData["makes"] as List<SelectListItem>, "--Select car--", new { @class = "dropdown-toggle form-control" }) 
         } 
        </div> 
       </div> 
       <div class="row"> 
        <div class="col-sm-10"> 
         <p></p> 
         @Html.DropDownList("models", new SelectList(string.Empty, "Value", "Text"), "--Select model--", new { @class = "dropdown-toggle form-control" }) 
        </div> 
       </div> 
       <div class="row"> 
        <p></p> 
        <div class="col-sm-10"> 
         @Html.DropDownList("engines", new SelectList(string.Empty, "Value", "Text"), "--Select engine--", new { @class = "dropdown-toggle form-control" }) 
        </div> 
       </div> 
      </div> 

     </form> 

    </div> 
</div> 

<div class="col-sm-4" style="height: 10em;display: flex;align-items: center ; padding-top:25px;"> 
    <input type="submit" id="btnSearch" class="btn btn-default active" value="Search" disabled="disabled" style="width:150px;" /> 
</div> 

но логика для заполнения выпадающих еще в Index.cshtml. Хотя я попытался скопировать код javascript во вновь созданное частичное представление, выпадающие списки не заполняются данными должным образом. Он отлично работает, только когда я на первой странице. Не могли бы вы дать мне несколько подсказок, что было бы лучшим способом решить что-то подобное. Спасибо!

+0

ли другие страницы в том же контроллере? – jao

+0

У меня тоже есть в других контроллерах – Orsi

+0

Возможно, вы можете использовать ChildAction: http://stackoverflow.com/questions/12530016/what-is-an-mvc-child-action и https://blog.falafel.com/child -действия-Asp-сетчатая MVC /. Просто переместите свою логику ViewData в дочернее действие и вызовите дочернее действие в вашем основном представлении. – jao

ответ

1

Вы можете поместить код JS во внешнем файле и вызвать его в голову тег в шаблоне с помощью сценария тег:

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