前提・実現したいこと
MVC5 独自検証(CustomValidation)をList型のObjectにあるプロパティに付与しても
エラーメッセージが表示されないです。
発生している問題・エラーメッセージ
MVC5で今回独自検証(CustomValidation)を実装しました。
対象のchtmlにバインドするモデル(クラス)にList型のオブジェクトのプロパティに
実装した独自検証を付与しました。
例)------------------------------------
public class sample
{
public List<Data> Items {get;set;}
}
public class Data
{
[独自検証バリデーション]
public int Id {get;set;]
}
chtml内ではPartialviewでList<Data> Itemを回して作成しています。
例)------------------
(chtmlのソース)(Main.chtml)
@Foreach(var item in Model.Items)
{
@html.partial("AddPartial",item)
}
(Addpartialのソース)(chtml)
(抜粋)
@html.TextAreafor(m => m.Id)
@html.ValidationMessageFor(m > m.id, new {class = "text-danger"})
Main.chtmlには送信ボタンがあり、postでコントローラーのアクションメソッドに飛ぶように
なっております。
(例)
[HttpPost]
[route("TempsaveData")]
public Actionresult TempsaveData(sample model)
{
// 独自検証が効いていることは確認しました。
// このif文内を通ります。
if (!ModelState.Isvalid)
{
return View(model);
}
※独自検証が効いて、return View(model)を通って、Viewに戻るのですが、
独自検証で実装したメッセージと、コントローラーの枠が赤色にはならず、
なにも変わらないように見えております。
検証が通っているのにView側でメッセージと枠が赤色にならない原因は
何なのでしょうか?
※(独自検証の実装の中身はRequiredの検証の実装とまったく同じにしたのですが
変わりませんでした。)
※(List型のオブジェクトにあるプロパティに[Required]に返るとうまく動作しました。
{コントローラに赤枠が出て、メッセージが表示されます})
独自検証を実装する際に気を付ける事はありますでしょうか?
知恵をおかしいただけますでしょうか?
※開発環境
OS:Windows 10
.NET : ver 4.7
Visual studio 2017 Ver 15.5.2