У меня есть следующее действие для отображения формы с 3 элементами:
[HttpGet]
public ActionResult ReferAFriend()
{
List<ReferAFriendModel> friends = new List<ReferAFriendModel>();
ReferAFriendModel f1 = new ReferAFriendModel();
ReferAFriendModel f2 = new ReferAFriendModel();
ReferAFriendModel f3 = new ReferAFriendModel();
friends.Add(f1);
friends.Add(f2);
friends.Add(f3);
return View(friends);
}
и затем действие публикации
[HttpPost]
public ActionResult ReferAFriend(IEnumerable<ReferAFriendModel> friends)
{
if(ModelState.IsValid){
РЕДАКТИРОВАТЬ Мой вид выглядитthis:
@model IEnumerable<Models.ReferAFriendModel>
@for(int i=0;i<Model.Count();i++)
{
@Html.Partial("_ReferAFriend", Model.ElementAt(i));
}
Частичное выглядит следующим образом:
@model Models.ReferAFriendModel
<p>
@Html.LabelFor(i => i.FullName) @Html.TextBoxFor(i => i.FullName)<br />
@Html.LabelFor(i => i.EmailAddress) @Html.TextBoxFor(i => i.EmailAddress)
@Html.HiddenFor(i=>i.Id)
</p>
Когда я публикую сообщение, я вижу, что поля публикуются в объекте Request.Form, например, Request.Form ["FullName»] покажет:« Дэвид Бекхэм »,« Тьерри Анри ».«Чичарито Фергурсон», которые являются значениями, которые я ввел в форму. Но в действии Post значение 'friends' всегда равно null. ReferAFriendModel имеет три открытых свойства Id, EmailAddress и FullName.
Что я делаю не так?