У меня есть модель какMVC частичный вид трейлерах другая модель
public class MainDataViewModel
{
[Required]
[Display(Name = "Select Work Orders")]
public string[] SelectedWorkOrdersValues { get; set; }
public MultiSelectList WorkOrderIds { get; set; }
public IEnumerable<ORDERMASTER> ordersDetails;
}
And Main Посмотреть как
@model InventoryEasy15.Models.MainDataViewModel
<div class="box-body">
<div class="col-md-6">
<div class="form-group">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<label for="fileToUpload">Select the Work Orders</label>
@Html.ValidationMessageFor(m => m.WorkOrderIds, "", new { @class = "text-danger" })
@Html.ListBoxFor(m => m.SelectedWorkOrdersValues, Model.WorkOrderIds as MultiSelectList, new { id = "WorkOrders", @class = "form-control", data_placeholder = "Choose Work Orders..." })
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<input type="submit" value="Get WorkOrder Details" id="btnSubmit" class="btn btn-primary">
</div>
</div>
</div>
</div>
@Html.Partial("MainDataWorkOrderDetails", Model.ordersDetails)
и частичное представление как
@model IEnumerable<InventoryEasy15.ORDERMASTER>
<div id="myDisplayID"><div>
Сейчас я получаю сообщение об ошибке, как
Элемент модели, переданный в словарь, имеет тип «InventoryEasy15.Models.MainDataViewModel», но для этого словаря требуется элемент модели типа «System.Collections.Generic.IEnumerable`1 [InventoryEasy15.ORDERMASTER]».
Любые мысли.
Контроллер здесь
public async Task<ActionResult> MainDataWorkOrderDetails(MainDataViewModel m)
{
var model = new MainDataViewModel();
var result = await db.ORDERMASTERs.Where(x => x.WOID == "WO7446708").ToListAsync();
if (result != null)
{
model.ordersDetails = result;
}
return PartialView(model);
}
ошибка означает, что '' model.ordersDetails' является null'. Предложите добавить конструктор по умолчанию для его инициализации или добавить блок 'else' и включить' else {model.orderDetails = новый список} '. Примечание: вы можете просто использовать 'Model.WorkOrderIds' в методе' ListBoxFor() '(нет необходимости в' как MultiSelectList') –
Я изменил это, если (result! = Null) { model.ordersDetails = результат; } и все еще не удается еще { model.ordersDetails = новый Список(); } –
Techonthenet
Непонятно, что вы здесь делаете. Почему у вашего метода GET есть параметр для модели (неправильная практика) и почему она возвращает частичный вид ?. Но я повторяю - ошибка означает, что при вызове '@ Html.Partial (« MainDataWorkOrderDetails », Model.ordersDetails) значение' Model.ordersDetails' равно 'null'. Отлаживайте свой код! –