EditorFor で文字列を検証しようとしています.ライセンスがデータベースにない場合は、エラーを出力したいと思います..
ここに私のモデルがあります:
[Display(Name = "Lizenznummer")]
[Required]
[Remote("IsLicenseValid", "HLRController", "Lizenznummer ungültig")]
public string HLR_LIZENZ { get; set; }
これが私のコントローラーです(HLRController.cs)
public ActionResult IsLicenseValid(string HLR_LIZENZ)
{
return IsExist(HLR_LIZENZ)
? Json(true, JsonRequestBehavior.AllowGet)
: Json(string.Format("{0} ist nicht gültig.", HLR_LIZENZ),
JsonRequestBehavior.AllowGet);
//: Json(false, JsonRequestBehavior.AllowGet);
}
public bool IsExist(string license)
{
bool result = false;
var item = (from c in db.KD select c).ToArray();
for (int i = 0; i < item.Length; i++)
{
if (item[i].KD_LIZENZ == license)
result = true;
if (result)
break;
}
return result;
}
そして、私のビューがあります:
<div class="editor-field">
@Html.EditorFor(model => model.HLR_LIZENZ)
@Html.ValidationMessageFor(model => model.HLR_LIZENZ)
</div>
どこで間違ったのかわかりません..こことインターネットの他のページで同様のコードを見ました-.-
このコードをテストしても、何も起こりません。わかりました、何も嘘ではありません。EditFor にライセンスを記述しても何も起こりませんが、[Required] Vaidation は機能しません。フィールドが空の場合、彼は ErrorMessage を書き込み、フィールドを赤で囲みます。次に、何かを入力します-赤いフレームは消えますが、ErrorMessageは残ります。
私はこれをデバッグしたかったので、ブレークポイントを「IsLicenseValid」メソッドに入れましたが、彼はそこで止まりません。なので、この方法は使ったことがありません.. (?!)
誰かがアイデアを持っていますか?どうもありがとう!