У меня строго типизированное представление Edit с моделью с именем OrderModel. В этом представлении я использую строго типизированное частичное представление с моделью с именем OrderTypeModel. Частичное представление _OrderTypeAutoComplete, которое содержит текстовое поле автозаполнения jqueryui. Если я отрисовываю представление с этим кодом,
public ActionResult Edit(){
return View();
}
В представлении «Мои правки» содержится следующая разметка Razor
<div class="editor-field">
@Html.Partial("_OrderTypeAutoComplete")
@Html.HiddenFor(model => model.OrderTypeID)
@Html.ValidationMessageFor(m => m.OrderTypeID)
</div>
Мой частичный вид содержит эту разметку бритвы
@{
Layout = null;
}
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
@Html.AutoCompleteFor(model => model.OrderTypeID, x => x.OrderType, "Items","Orders")
Когда я отрисовываю это, все отлично, и мое автозаполнение прекрасно работает (с использованием расширения автозаполнения). В любом случае, мне нужно было что-то инициализировать в моей первоначальной OrderModel, поэтому я изменил код в моем контроллере на этот.
public ActionResult Edit(){
return View(OrderService.GetInitializedOrderModel()); //returns a new OrderModel
}
Теперь, когда я отображаю представление, я получаю исключение:
Элемент модели, передаваемый в словарь, имеет тип 'Testing.Models.OrderModel', но для этого словаря требуется элемент модели типа 'Testing.Models.OrderTypeModel'.
на этой строчке, на мой взгляд
@ Html.Partial ( "_ OrderTypeAutoComplete")
Кажется, движок Razor создаст OrderModel для представления и OrderTypeModel для частичного представления в порядке, когда я не предоставил OrderModel. Это даст те же результаты.
public ActionResult Edit(){
return View(new OrderModel())
}
Я новичок в MVC, поэтому я не уверен, что здесь происходит. Я просто пытаюсь предоставить несколько простых выпадающих значений для моего представления в модели OrderModel, которые достаточно малы, чтобы мне не требовался постбэк jquery для получения. Это значения, которые я инициализирую в своей модели для действия Http Get on my Edit.
Любая помощь будет принята с благодарностью. Спасибо.