Несколько частичных представлений на основе одной модели - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть что-то вроде этого:

Основной вид:

@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; }
}

Итак, когда он рендерится - он выглядит правильно, но проверка одинакова для всех книг.И мне нужно иметь много книг (скажем, чтобы добавить их динамически) для автора, и каждая из них должна быть независимой и «проверяемой».

Как я могу выполнить такое поведение?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

У меня была бы коллекция BookViewModel в вашем AuthorViewModel. Таким образом, имена и идентификаторы будут уникальными.

0 голосов
/ 21 февраля 2012

Вы пытаетесь связать модель со списком.Его довольно просто реализовать, посмотрите на Phil Haacks post здесь.Он использует старые представления mvc, но та же самая идея прекрасно работает для бритвы

0 голосов
/ 21 февраля 2012

Вы можете обновить свой AuthorViewModel, чтобы получить список BookViewModel.В представлении выполните итерацию по списку и создайте необходимые поля для заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...