Просто начинаю с ASP.NET MVC и уже сталкиваюсь с камнем преткновения.
Ситуация такова, что у меня есть пользовательская ViewModel для передачи в представление, которое содержит список элементов, которые должны быть оценены (будет использоваться рейтинг звезды jQuery), поэтому они создаются с помощью переключателя-переключателя то же имя, просто другое значение, и они не представляют проблемы.
Однако я абсолютно не представляю, как вернуть это обратно в пост-версию моего действия. Я просто получаю ошибку «без параметров без конструктора». Я не хочу использовать коллекцию форм - я хочу, чтобы мои данные оставались на основе классов.
Кто-нибудь должен был сделать что-нибудь подобное?
Большое спасибо за любые советы.
=============================================== ========================
ОБНОВЛЕНИЕ (основной код включен):
In the HomeController:
public class MyViewModel
{
public MyViewModel(List<Thing> things ) // Thing.cs contains properties name and rating
{
this.Things = things;
}
public List<Thing> Things { get; private set; }
}
public ActionResult Index()
{
List<Thing> things = new List<Thing>();
Thing t;
t = new Thing();
t.name = "One";
t.rating = 1;
things.Add(t);
t = new Thing();
t.name = "Two";
t.rating = 2;
things.Add(t);
return View(new MyViewModel(things));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index( MyViewModel vm)
{
return View();
}
and in the Index page ( Inherits="System.Web.Mvc.ViewPage<MyProject.Controllers.MyViewModel>" )
<% using (Html.BeginForm())
{%>
<ul>
<% for( int t = 0; t<Model.Things.Count; t++)
{%>
<li>
<% for (int i = 1; i < 6; i++)
{
MyProject.Thing thing = Model.Things[i];
%>
<%=Html.RadioButton(String.Format("Things[{0}]", t), i)%>
<% } %>
</li>
<% }%>
</ul>
<input type="submit" value="submit me" />
<% } %>