Imこれを行うには、approch outline hereに従います。ドロップダウンを伴うMVCとXVal - 'Please Select'の値が無効です
xvalを使用してドロップダウン選択を検証する際に問題がありますが、MVCバインディングでは操作が妥当性検査に合格するという間違ったことが推測されるようですが、modelstateはバインディング例外を保存してページを無効にします操作が無効なデータで実行されることが許可されているが、ページが無効であるため、ユーザーは検証が失敗したと考えられるようになります。
これが選択されているユーザーを想定し、これがダウン私のドロップである
それをより明確に何ので、「選択してください」なかったかもしれません。
Do you like cheese:
<select name="Favourites.Cheese">
<option>Please Select</option>
<option value="1">Yes</option>
<option value="0">No</option>
</select>
<%=Html.ValidationMessage("Favourites.Cheese")%>
これは、あまりにも、MVCはfav.cheeseする偽の値をマップの記事から、
public ActionResult Create(Favourites fav)
{
try
{
_favTask.Create(fav);
}
catch (RulesException ex)
{
ex.AddModelStateErrors(ModelState, "Favourites");
}
if(!ModelState.IsValid)
{
//redirect back
}
//other stuff
}
プロパティが
pulic class Favourites
{
[Required]
public bool Cheese{get;set;}
}
ませ例外を帰属されていないコントローラのアクションでスローされますfav.cheeseは値があるので
public int Create(Favourites fav)
{
var errors = DataAnnotationsValidationRunner.GetErrors(fav);
if (errors.Any())
throw new RulesException(errors);
//create fav
}
しかし、コントローラのModelStateにフォーカスが戻ったときに、falseが返されるので、fromはメッセージでリロードされます。「Please Select」の値は無効です。どのように私は起こってからこれを停止するか、xValは "値を選択してください"の検証メソッドを駆動するのですか?
Mvcはこれをfalseにマップしますか?したがって、何かが選択されたように見えるでしょうか? – Dan
私はあなたの質問を誤解しましたか?あなたは今、検証エラー "値"を選択してください "無効です"を取得し、エラーを停止したいと言った?代わりに何をしたいですか? – tvanfosson
"値を選択してください"のようなメッセージを表示したいのですが、現在のメッセージはMVCバインディングの副産物であり、xvalの検証はできません。 – Dan