ASP MVCエラー処理にいくつか問題があります。非フィールド関連のエラーをasp mvcフォームに追加します。
ユーザーがデバイスに接続しようとするフォーム上。 useが無効なデバイス名を入力した場合、その名前が無効であることをユーザーに伝えるのはかなり簡単です。
すべてのデータクラスにIEnumerable<RuleViolation> GetRulesViolations()
を実装しています。 PropertyName
とErrorMessage
と私はちょうどGetRulesViolationsメソッドを呼び出すとにModelStateにエラーを設定提出上のエラーが出る場合:
catch {
foreach (var issue in device.GetRulesViolations()) {
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View();
}
とエラーがで表示されるいくつかの背景のASP MVC魔法とをRuleViolation
クラスには2つのフィールドがありmodel.NameためValidationMessageプレースホルダでビュー:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<p>
<input type="submit" value="Connect" />
</p>
</fieldset>
}
今問題:「のようなものがに
私は取得していますエラーがある場合は接続できませんでしたデバイス "は、Name
フィールドに関連する問題ではありません。フォーム全体に関連するため、フォームの上に表示されるメッセージです。
ModelState.AddError( "エラーメッセージ")のように、フォーム全体に適用されるようにキーを教えずに直接設定する方法はありますか?または、データクラスにError
隠しプロパティを作成し、フォームの上のそのプロパティのメッセージ?このような