У меня есть следующее действие для отображения формы с 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){
EDIT Мой вид выглядит так:
@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"] покажет: "Дэвид Бекхэм", "Тьерри Анри" . «Чичарито Фергурсон», которые я ввел в форму. Но в действии «Опубликовать» значение «друзья» всегда равно нулю. Модель ReferAFriendModel имеет три открытых свойства: Id, EmailAddress и FullName.
Что я делаю не так?