Я могу найти различные статьи о том, как привязать к модели список элементов в MVC 3, даже изнутри таблицы, но в каждом Например, строки представляют запись в списке. Требования для моего представления заключаются в том, что каждая запись должна быть столбцом. Я не могу получить любой из трюков из следующих статей работающих:MVC 3 - Модель Связывание списка в таблице с каждой записью, являющейся столбцом вместо строки
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/ http://dotnetslackers.com/articles/aspnet/Understanding-ASP-NET-MVC-Model-Binding.aspx#s8-binding-with -a-список внеклассных-типов
Вот Релевент часть моего зрения:
<table>
<thead>
<tr>
<th>Name</th>
@foreach (var fact in Model.Facts)
{
<th>@fact.Name</th>
}
</tr>
</thead>
<tr>
<td>Value</td>
@foreach (var fact in Model.Facts)
{
<td>@Html.TextBox("Value" + fact.FactID.ToString(), fact.Value)</td>
}
</tr>
<tr>
<td>Sample</td>
@foreach (var fact in Model.Facts)
{
<td>@Html.TextBox("Sample" + fact.FactID.ToString(), fact.Sample)</td>
}
</tr>
<tr>
<td>Default?</td>
@foreach (var fact in Model.Facts)
{
<td>@Html.RadioButton("Default", fact.FactID, fact.Default)</td>
}
</tr>
<tr>
<td></td>
@foreach (var fact in Model.Facts)
{
<td>@Html.ActionLink("Detail", "Details", "Fact", new { id = fact.FactID }, null)</td>
}
</tr>
</table>
В методе после действий по форме Я принимаю к FormCollection который я вытягивать данные из вручную. Вместо этого я хотел бы принять коллекцию IList, и пусть связующее устройство MVC отобразит все для меня.
Вот мой контроллер действия:
[HttpPost]
[Authorize]
public RedirectToRouteResult Facts(FormCollection form)
{
int factListId = int.Parse(form["FactListID"]);
FactList factList = Repository.Find(factListId);
int defaultId = int.Parse(form["Default"]);
foreach (Fact fact in factList.Facts)
{
string factId = fact.FactID.ToString();
string toParse = form["Value" + factId];
fact.Value = toParse.Length == 0 ? null : new Nullable<double>(double.Parse(toParse));
fact.TextValue = form["Value" + factId];
toParse = form["Sample" + factId];
fact.Sample = toParse.Length == 0 ? null : new Nullable<int>(int.Parse(toParse));
fact.Default = (fact.FactID == defaultId);
}
Repository.Save();
return RedirectToAction("Index");
}
Каждый получил что-то мне точку в правильном направлении? Я предполагаю, что есть информация, но я просто не могу найти ее в огромном объеме информации о том, как сделать это более «стандартную» 1 строку на запись.
Благодаря
Итак, вы хотите, чтобы столбцы росли, а не строки? – Jared