我尝试验证 EditorFor 中的字符串.. 如果许可证不在我的数据库中,我想打印错误..
这是我的模型:
[Display(Name = "Lizenznummer")]
[Required]
[Remote("IsLicenseValid", "HLRController", "Lizenznummer ungültig")]
public string HLR_LIZENZ { get; set; }
这是我的 Controller (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 并将该字段框为红色。 然后我输入一些内容 - 红框消失,但错误消息仍然存在。
我想调试这个,我在我的“IsLicenseValid”方法中放置了一个断点 - 但他并没有就此停止。所以这个方法从来没有被使用过..(?!)
有人有想法吗? 非常感谢!
最佳答案
您必须省略属性的 Controller 名称中的controller部分,它由框架处理:
[Remote("IsLicenseValid", "HLR", "Lizenznummer ungültig")]
关于c# - ASP.net MVC 4 远程验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288544/