Ler*_*ica 1 c# razor asp.net-mvc-3
我将一些虚拟数据传递给我的View只是为了有一些工作:
public ActionResult Index()
{
ViewBag.Message = "Create table";
var model = new List<Auction>();
model.Add(new Auction
{
Title = "First Title",
Description = "First Description"
});
model.Add(new Auction
{
Title = "Second Title",
Description = "Second Description"
});
model.Add(new Auction
{
Title = "Third Title",
Description = "Third Description"
});
model.Add(new Auction
{
Title = "Fourht Title",
Description = "Fourth Description"
});
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
我在我的视图中显示:
@model List<Ebuy.Website.Models.Auction>
@{
ViewBag.Title = "Home Page";
}
@using (Html.BeginForm())
{
<table border="1" >
@for (var i = 0; i < Model.Count(); i++)
{
<tr>
<td>
@Html.HiddenFor(x => x[i].Id)
@Html.DisplayFor(x => x[i].Title)
</td>
<td>
@Html.EditorFor(x => x[i].Description)
</td>
</tr>
}
</table>
<button type="submit">Save</button>
}
Run Code Online (Sandbox Code Playgroud)
现在我想对提交的数据进行一些操作:
[HttpPost]
public ActionResult Index(List<Auction> model)
{
var test = model;
model[1].Title = "Test";
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
但是当我调试它时,我看到Description属性被发回,但Title属性没有值.如上所示,我用它们显示它们@Html.DisplayFor(x => x[i].Title).这是一些默认行为还是我做错了什么?
@Html.DisplayFor 不输出输入字段(或任何表单字段),因此它不是表单发布的值的一部分.
如果您希望将标题作为表单的一部分发布,则可能需要添加其他标题
@Html.HiddenFor(x => x[i].Title)