Это мое первое приложение asp.net mvc. Я использую mvc 3 и бритву для своих просмотров. Конкретный вид, с которым у меня есть проблема является сильно типизированным видом (по крайней мере, я думаю, что это), но она принимает вид этого рода:Сбор данных из строго типизированного вида бритвы
@model List<List<DataAccess.MCS_DocumentFields>[]>
я сделал несколько частичного вида, потому что основной вид был очень настроенным и Мне нужна логика для разных частей моих данных. Мой частичный вид также сильно типизированных (опять же, я думаю, что это правильно сказать) типа:
@model List<DataAccess.MCS_DocumentFields>[]
Все, что мне нужно, чтобы построить свою точку зрения в:
@using (Html.BeginForm("ActionMethodName", "Forms", FormMethod.Post))
{
<div id="drawForm">
<table border="1">
Внутри Hhtml.BeginForm
я построить таблицу со всеми данными, поступающими от контроллера. Now on submit:
<button type="submit">Submit</button>
Я ищу лучший способ получить свои данные и обновить в базе данных то, что изменилось. В моем контроллере у меня есть этот метод:
[HttpPost]
public ActionResult ActionMethodName(FormCollection collection)
{
var test = collection;
List<MCS_Documents> model = DocumentsService.All().ToList();
return View("Index", model);
}
Таким образом, я могу найти мои данные, но это так сложно, я даже не знаю, как я доберусь до него. Я пытался что-то другое, используя тот же метод, но принимая в качестве аргумента типа которого вид принимает:
[HttpPost]
public ActionResult ActionMethodName(List<List<DataAccess.MCS_DocumentFields>[]> collection)
{
Но когда я делаю что коллекция имеет нулевое значение. И из маленького, что я знаю, когда я использую строго типизированное представление, я могу получить некоторые дополнительные преимущества, такие как form.validation и привязка данных, готовые к обновлению и т. Д.
Так что же лучший способ в моем конкретном сценарии , для обработки данных, представленных в форме?
PS
Это, как я сделать мой основной вид:
<table border="1">
<colgroup>
<col span="1" style="width: 10%;" />
<col span="1" style="width: 40%;" />
<col span="1" style="width: 25%;" />
<col span="1" style="width: 25%;" />
</colgroup>
<tbody>
@for (int i = 0; i < Model.Count(); i++)
{
if (Model[i][0][0].ContentTypeId == 1)
{
@Html.Partial("_PartialHeader", Model[i])
}
else if (Model[i][0][0].ContentTypeId == 2)
{
@Html.Partial("_PartialDrawing", Model[i])
}
else if (Model[i][0][0].ContentTypeId == 3)
{
@Html.Partial("_PartialBody", Model[i])
}
else if (Model[i][0][0].ContentTypeId == 4)
{
@Html.Partial("_PartialFooter", Model[i])
}
}
</tbody>
</table>
<button type="submit">Save</button>
и это одна из моих обертонов, просто чтобы показать, как я использую их:
@model List<DataAccess.MCS_DocumentFields>[]
<tr>
@if (!string.IsNullOrEmpty(Model[0][0].FieldValue))
{
<td colspan="2">
@Html.DisplayFor(x => x[0][0].FieldValue)
</td>
}
else
{
<td colspan="2">
Sign in here
</td>
}
@if (!string.IsNullOrEmpty(Model[1][0].FieldValue))
{
<td colspan="2">
@Html.DisplayFor(x => x[1][0].FieldValue)
</td>
}
else
{
<td colspan="2">
Sign in here
</td>
}
</tr>
Пожалуйста показать, как вы рендеринг данных из вашей модели (где-то должен быть какой-то цикл) – Jan
@Jan См. отредактированное оригинальное сообщение. – Leron