我有这样的事情:
主要观点:
@model AuthorViewModel
@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id="someId" })) {
@Html.LabelFor(model => model.Name);
@Html.EditorFor(model => model.Name);
@Html.ValidationMessageFor(model => model.Name);
<label> Book </label>
@{Html.RenderPartial("_BookView", new BookViewModel());}
<label>One more book...</label>
@{Html.RenderPartial("_BookView", new BookViewModel());}
}
部分观点:
@model BookViewModel
@Html.LabelFor(model => model.Title);
@Html.EditorFor(model => model.Title);
@Html.ValidationMessageFor(model => model.Title);
AuthorViewModel:
public class AuthorViewModel
{
[Required]
[DataType(DataType.Text)]
public String Name { get; set; }
}
BookViewModel:
public class BookViewModel
{
[Required]
[DataType(DataType.Text)]
public String Title { get; set; }
}
因此,当它呈现时 - 看起来是正确的,但所有书籍的验证都是一样的。我需要为作者提供大量书籍(比如动态添加它们),每个书籍必须是独立的并且“可以验证”。
我该如何表现?
答案 0 :(得分:2)
我的BookViewModel
会收集AuthorViewModel
。这样,名称和ID将是唯一的。
答案 1 :(得分:0)
您可以更新AuthorViewModel以获得BookViewModel列表。在视图中,遍历列表并为书签创建必要的字段。
答案 2 :(得分:0)
您正在尝试将绑定建模到列表。 它的实现非常简单,请在这里查看Phil Haacks post。 他使用旧的mvc视图,但同样的想法适用于剃须刀