Я получил очень простое приложение ASP.NET MVC (5.2.4.0) с кодом ниже.Я не могу найти причину, по которой модель. Адреса пустые, когда форма отправляется в метод [HttpPost] .Может кто-нибудь, пожалуйста, помогите мне?Что я вижу, мой код соответствует ответам на похожие вопросы здесь, в StackOverflow.
HomeController.cs
namespace WebApplication2.Controllers {
public class IndexViewModel {
public string Name { get; set; }
public List<Address> Addresses;
public IndexViewModel()
{
Addresses = new List<Address>();
}
}
public class Address
{
public string Name { get; set; }
public string Id { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new IndexViewModel();
model.Addresses = new List<Address>();
model.Addresses.Add(new Address() { Id = "1", Name = "A1" });
model.Addresses.Add(new Address() { Id = "2", Name = "A2" });
return View(model);
}
[HttpPost]
public ActionResult Index(IndexViewModel model)
{
return View(model);
}
}
}
Index.cshml:
@model WebApplication2.Controllers.IndexViewModel
@{
ViewBag.Title = "Home Page";
}
@using (Html.BeginForm("Index", "Home"))
{
@Html.EditorFor(m => m.Name)
for (var i = 0; i < Model.Addresses.Count; i++)
{
@Html.TextBoxFor(m => Model.Addresses[i].Name)
@Html.HiddenFor(m => Model.Addresses[i].Id)
}
<input type="submit" value="Ok" />
}