В настоящее время я хочу, чтобы пользователь обновил список данных и смог отправить его обратно. Данные, которые пользователь обновляет, аналогичны данным, на данный момент это несколько текстовых полей. Они обновляют информацию и отправляют ее обратно.mvc как подать viewmodel?
В настоящее время я создал следующий ViewModel
public class Name
{
public int Id { get; set; }
public string FullName { get; set; }
}
Это будет хранить данные. Так от контроллера я насмешливый данные в момент
public ActionResult Index()
{
var listOfNames = new List<Name>();
var name1 = new Name();
name1.Id = 1;
name1.FullName = "Test Name1";
var name2 = new Name();
name2.Id = 2;
name2.FullName = "Test Name2";
var name3 = new Name();
name3.Id = 3;
name3.FullName = "Test Name3";
var name4 = new Name();
name4.Id = 4;
name4.FullName = "Test Name4";
listOfNames.Add(name1);
listOfNames.Add(name2);
listOfNames.Add(name3);
listOfNames.Add(name4);
return View(listOfNames);
}
Тогда вид выглядит следующим образом,
@model IEnumerable<MvcApplication1.Models.Name>
@using (Html.BeginForm())
{
foreach (var item in Model)
{
@Html.TextBox("namevalues", item.FullName, new { id = "name" + item.Id, data_id = item.Id})
<br />
}
<input type="submit" />
}
, когда пользователь отправляет данные, которые я хотел бы иметь ViewModel обратно населенную, так что я должен быть в состоянии сделать следующее
[HttpPost]
public ActionResult Index(IEnumerable<Name> names)
{
return View("index", names);
}
мне нужно использовать JavaScript на самом деле собирать информацию вместе ли затем передать это? или есть какая-то магия MVC, о которой я не знаю?
Для этого вам не нужен JavaScript. Просто привяжите модель представления к вашему представлению. –