Я немного новичок MVC, поэтому вам придется простить то, что я себе представляю, элементарный вопрос.MVC custom viewmodel problems
Я создал пользовательский ViewModel для того, чтобы иметь множественный список в моей форме:
public class CustomerFormViewModel
{
public Customer Customer { get; private set; }
public MultiSelectList CustomerType { get; private set; }
public CustomerFormViewModel(Customer customer)
{
Customer = customer
// this returns a MultiSelectList:
CustomerType = CustomerOptions.Get_CustomerTypes(null);
}
}
я обнаружил, что моя первая попытка только захватили первое значение множественного выбора, и я догадался, что это потому, что мой создавать действия выглядит следующим образом:
// GET: /Buyer/Create
public ActionResult Create() { ... }
// POST: /Buyer/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Customer customer) { ... }
Итак, я решил изменить его к этому:
// GET: /Buyer/Create
public ActionResult Create() { ... }
// POST: /Buyer/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(CustomerFormViewModel model) { ... }
Чтобы я мог получить полный вывод из MultiSelectList и проанализировать его соответствующим образом. Проблема в том, что это жалуется, что нет конструктора без параметров для viewmodel (а его нет) - и я не уверен, что это правильный способ сделать это. Ничто из того, что я пробовал, не сработало, и мне действительно нужна помощь!
В случае это помогает, на мой взгляд выглядит следующим образом:
<%@ Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MySite.Controllers.CustomerFormViewModel>" %>
...
<% using (Html.BeginForm())
<%= Html.ListBox("CustomerType", Model.CustomerType)%>
...
Проводили некоторые исследования и пришли к выводу, что, как вы говорите, пользовательская модель Binder - это именно то, что мне нужно. Теперь мне просто нужно выяснить, как написать один! Спасибо за ваш комментарий - я приму ваше предложение и посмотрю, смогу ли я заставить его работать. – user101306