У меня есть следующий вид с точки зрения ASP.NET MVC:Проверка динамически создаваемых полей в ASP.NET MVC
<%= Html.ValidationSummary() %>
<% var fields = ViewData.Model; %>
<% using (Html.BeginForm("Dynamic", "Candidate")) { %>
<% foreach (var field in fields) { %>
<label for="<%= field.FieldName %>"><%= field.FieldName %></label>
<%= Html.TextBox(field.FieldName, field.Value, new { @class = "short" }) %>
<% } %>
<a class="button green" onclick="$('form').submit(); return false;">Submit</a>
<% } %>
У меня есть одно действие контроллера, который загружает эту форму, а также принимает должность, его выглядит следующим образом:
public ActionResult Dynamic() {
var fields = DataProvider.Candidates.GetAllDynamicFields();
if (Request.HttpMethod == "POST") {
fields.ForEach(f => f.Value = Request[f.FieldName]);
var validation = DataProvider.Candidates.SaveDynamicFields(fields);
if (validation.IsValid)
return RedirectToAction("Index");
ViewData.ModelState.AddErrorsFromValidationResult(validation);
}
return View(fields);
}
Моя проблема заключается в том, что если какой-либо из валидаторов неудачу (т.е. объект проверки содержит ошибки), то я получаю сообщение об ошибке на вид рендеринга, потому что ViewData.ModelState не содержит каких-либо клавиш. Где я здесь не так? Любые подсказки?