0

我的ApplicationController

public class ApplicationController : Controller
{
   private IUxRepository _repository;
   public ApplicationController(IUxRepository repository)
   {
     _repository = repository;
   }

   public ActionResult Create()
   {
      return View("Shape", new ApplicationViewModel());
   }
}

我的ApplicationViewModel

public class ApplicationViewModel : ViewModelBase
{
    public ApplicationViewModel()
    {
        Application = new Application();
    }

    public Application Application {get;set;}
}

我的Application模型:

public class Application : DbEntity
{
    public string Name {get;set;}

    [Display(Name = "Proposed Release Date"),
     RegularExpression(@"(^Q[1-4])\s(2\d{3})", ErrorMessage = "Date needs to be in the format Q{1-4}{space}20{YY} e.g. Q4 2013 or Q1 2014")]
    public string ProposedReleaseDate {get;set;}
}

Shape从视图中提取:

<div class="editor-label">
@Html.DisplayFor(model => model.ProposedReleaseDate)
</div>

<div class="editor-field">
@Html.EditorFor(model => model.ProposedReleaseDate)
@Html.ValidationMessageFor(model => model.ProposedReleaseDate)
</div>

当我尝试加载我的Shape视图时,由于某种原因,它会返回一个验证错误,指出ProposedReleaseDate不符合要求RegularExpression

当然不是因为它是一个等待输入的新实体,为什么它在页面加载之前进行验证。它的验证为时过早。我如何绕过这个,或者我在哪里关闭这个功能,它的反直觉/高效恕我直言。

4

1 回答 1

1

ErrorMessage 格式不正确。代替

ErrorMessage = "Date needs to be in the format Q{1-4}{space}20{YY} e.g. Q4 2013 or Q1 2014"

做了

ErrorMessage = "Date needs to be in the format Q{{1-4}}{{space}}20{{YY}} e.g. Q4 2013 or Q1 2014"

请注意,“{”现在是“{{”,“}”现在是“}}”

编辑:相关链接如何在.NET中以格式字符串转义大括号(大括号)

于 2013-05-21T16:00:17.097 回答