Динамическая проверка asp.net MVC в зависимости от действия - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть такая модель представления:

public class AccountView {
  public int AccountId { get; set; }
  [Required]
  public string AccountName { get; set; }
}

Но я бы хотел, чтобы поле AccountName было обязательным только в том случае, если для действия задано «Редактировать», а не «Создать».Как это сделать в asp.net mvc3?

спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Или вы можете просто иметь две разные ViewModels: одну для действия Edit и одну для действия Create.Я не думаю, что это плохая практика, даже если вы дублируете код (очевидно, не все), поскольку ViewModel следует привязать к View, который он моделирует.

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

Вы можете реализовать собственный валидатор. Оказавшись внутри метода Validate, вы получите доступ к таким свойствам, как (((System.Web.Mvc.ModelValidator) (this))). ControllerContext.Controller, где вы можете просмотреть ContollerContext, ViewData и т. Д. свойства как

  • (((System.Web.Mvc.ModelValidator) (это))). ControllerContext.RequestContext
  • (((System.Web.Mvc.ModelValidator) (это))). ControllerContext.HttpContext
  • (((System.Web.Mvc.ModelValidator) (это))). ControllerContext.RouteData
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...