Я прошел весь день с проблемой сериализации с вложенными свойствами (в частности, с массивом) и MVC.
Я создал простой код, чтобы показать вам упрощение. Я предполагаю, что я только что гуглил и пытался даже поставить Items[0].Id
в качестве имени помощника html.
Кстати, вот код *, может быть, вы можете предоставить мне рабочее и чистое решение.
@using (Ajax.BeginForm("Salva", "Home", new AjaxOptions(){ HttpMethod = "POST"}))
{
<div class="row">
@for (int i = 0; i < Model.Items.Length; i++)
{
@Html.Partial("_Item", Model.Items[i])
}
</div>
<input value="click" type="submit"/>
}
Модели
namespace WebApplication2.Models
{
public class SomeClass
{
public Internal[] Items { get; set; }
}
public class Internal
{
public DateTime? Date { get; set; }
public int Id { get; set; }
}
}
а вот и контроллер
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new SomeClass();
var lst = new List<Internal>();
for (int i = 0; i < 3; i++)
{
lst.Add(new Internal{Id = i});
}
model.Items = lst.ToArray();
return View(model);
}
[HttpPost]
public ActionResult Salva(SomeClass model)
{
return Json(true);
}
}
и вот _Item.cshtml
@model namespace.Internal
Html.TextFor(m=>m.Date)
Я надеялся, что создание простого предмета очистит мои сомнения и увидит, где я ошибаюсь в реальном проекте, но без удачи ... что я делаю неправильно?
Спасибо