1

我有这个模型:

        public Flight[] Flights { get; set; }
        public Passenger Passenger { get; set; }
        public ReservationData ReservationData { get; set; }

我想像这样添加 ModelState 错误:

        Operation.ModelState.AddModelError("Flights", "");

但我想将错误分别添加到航班数组的项目中。那我用什么键?

4

1 回答 1

0

对我来说似乎更像是一种解决方法,但您仍然可以ModelState直接在控制器和视图中使用,并制作某种特定于航班的键,例如通过某些航班的标识符。

这是使用数组中航班索引作为标识符的示例。控制器:

...
for (int i=0; i < model.Flights.Length; i++)
{

    //here comes the validation for flight model.Flights[i]
    //if the validation fails, adding error to the model

    Operation.ModelState.AddModelError("Flight" + i, "");
}
...

看法:

<% for (int i=0; i < Model.Flights.Length; i++) { %>

    <%-- flight rendering goes here, including rendering of errors --%>

    <% if (ViewData.ContainsKey("Flight" + i) { %>
        <%: ViewData.ModelState["Flight" + i].Errors[0] %>
    <% } %>
<% } %>
于 2012-04-23T08:02:34.877 回答