Как новичок ASP.Net MVC3, у нас есть проблема, с которой хотелось бы помочь. (Вопросы внизу этой темы тоже.)
Прежде всего, я не уверен, что следующее - лучший способ сделать это, поэтому, пожалуйста, дайте мне знать, если мы движемся в неправильном направлении. Мы хотели бы использовать частичные представления для поиска выпадающих списков. В некоторых случаях поиск будет выполняться в нескольких местах, а также, данные не являются частью нашей модели представления. Данные могут поступать из базы данных или веб-службы в нашем приложении. Некоторые данные загружаются при запуске, а некоторые основаны на других значениях, выбранных в форме.
Мы вызываем дочернее действие из нашего основного представления и возвращаем частичное представление с полученными нами данными. Как только пользователь выбирает свой выбор, мы не уверены, как сохранить код выбранного элемента в нашей модели основного вида.
В нашей основной форме мы призываем к действию:
@model Apps.Model.ViewModels.AVMApplicationInfo
...
<div class="editor-label">
@Html.LabelFor(m => m.VMResidencyWTCS.DisplayState)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.VMResidencyWTCS.DisplayState)
@Html.DropDownListFor(m => m.VMResidencyWTCS.DisplayState, Apps.Model.Helpers.ResidencyStates.StateList)
@Html.ValidationMessageFor(m => m.VMResidencyWTCS.DisplayState)
</div>
@Html.Action("DisplayCounties", "PersonalInfo")
...
В контроллере PersonalInfo:
[ChildActionOnly]
public ActionResult DisplayCounties()
{
IList<County> countiesDB = _db.Counties
.OrderBy(r => r.CountyDescr)
.Where(r => r.State == "WI"
&& r.Country == "USA")
.ToList();
//Create an instance of the county partial view model
VMCounty countyView = new VMCounty();
//Assign the available counties to the view model
countyView.AvailableCounties = new SelectList(countiesDB, "CountyCd", "CountyDescr");
return PartialView("_DisplayCounties", countyView);
}
В частичном представлении _DisplayCounties:
@model Apps.Model.ViewModels.VMCounty
<div class="editor-label">
@Html.LabelFor(m => m.CountyDescr)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.SelectedCountyCd, Model.AvailableCounties)
</div>
Как назначить SelectedCountyCd полю в основной модели представления формы (Apps.Model.ViewModels.AVMApplicationInfo)? Есть ли какие-либо проблемы, когда вызывается дочернее действие / частичное представление; т. е. загружается ли он при запуске и может ли этот метод использоваться для включения выбора пользователя в качестве фильтра для поиска? Если это так, как это значение можно передать дочернему контроллеру; viewbag