0

検証をチェックするコントローラーの更新アクションがあります。

if (!ModelState.IsValid) return View(InitialiseModel(model));

私のビューはUIHelpersを使用しています:

<%=Html.EditorForModel("MyModelTemplate") %>

モデルに「Title」という属性を持つ String プロパティがあります [必須]:

 [Required]
 [DisplayName("Resource title")]
 public string Title { get; set; }

このプロパティの UI テンプレートは次のようになります。

<%= ViewData.ModelMetadata.IsRequired ? "*" : "" %>
<label for="<%=ViewData.ModelMetadata.PropertyName %>">
    <%=ViewData.ModelMetadata.GetDisplayName() %>
</label>
<input type="text" id="<%=ViewData.ModelMetadata.PropertyName%>" 
 name="<%=ViewData.ModelMetadata.PropertyName%>" value="<%=Model%>" />

<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName, "*") %>

問題は、ViewData.ModelMetadata.IsRequiredが常に false であることです。また、検証メッセージは表示されません。私は何が欠けていますか?

4

2 に答える 2

0

Ajax.BeginForm または Html.BeginForm を使用していますか? Ajax.BeginForm を使用している場合、私の問題とあなたの問題を説明した this s を読んだところです

于 2009-12-02T15:46:26.840 に答える
0

もしかしてバグ?

から: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

ブラッド・ウィルソンはアンドリューに返信して言った...

[Required] が現在 IsRequired を true に設定しているとは思えません。これはおそらくバグのようです。調べてみます。ありがとう!

于 2009-11-19T22:42:45.373 に答える