Аннотации данных с Entity Framework + MVC - PullRequest
2 голосов
/ 26 февраля 2010

У меня есть очень базовая модель сущностей, в которую я пытаюсь добавить пользовательские сообщения проверки.

Мои метаданные выглядят так:

namespace My.Models {
[MetadataType(typeof(My.Models.ConsumerMetadata))]
public partial class Consumer
{
}

public class ConsumerMetadata
{
    [StringLength(5)]
    [Required(ErrorMessage="First name is an absolute must!")]
    public string FirstName { get; set; }
} }

Проблема в том, что добавляемая мной аннотация данных не распространяется на ошибки представления - они остаются ошибками по умолчанию.

Я уверен, что это что-то простое, я здесь скучаю ...

Ответы [ 2 ]

1 голос
/ 26 февраля 2010

Вы добавили Html.ValidationSummary () на свою страницу?

0 голосов
/ 26 февраля 2010

Как выглядит ваш взгляд? Вы должны убедиться, что ваши входы имеют правильные идентификаторы

В MVC1 вы должны написать

<%= Html.TextBox("data.FirstName") %>
<%= Html.ValidationMessage("data.FirstName") %>

В MVC2 это даже проще, особенно если у вас сильное представление типа ViewPage<Consumer>

<%= Html.TextBoxFor(model => model.FirstName) %>
<%= Html.ValidationMessageFor(model => model.FirstName) %>

Действие вашего контроллера:

public ActionResult AddConsumer(Consumer data)
{
    if (!this.ModelState.IsValid)
    { ... }
    ...
}

В MVC2 проверка произойдет до того, как ваше выполнение войдет в это действие. Таким образом, вы сможете просто проверить ModelState.IsValid. Но в MVC это лучший способ написать собственный фильтр действий, который проверяет ваши объекты. Они вам придется украшать ваши действия с этим атрибутом фильтра и вуаля. Ваши объекты будут проверены, и вы можете действовать соответственно.

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