ASP.net MVC 4远程验证不工作

本文关键字:验证 工作 程验证 net MVC ASP | 更新日期: 2023-09-27 18:17:54

我尝试在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] validation不起作用。如果该字段为空,则写入ErrorMessage并将该字段框成红色。然后我输入一些东西-红色框架消失了,但ErrorMessage仍然存在。

我想调试这个,我把一个断点到我的"IsLicenseValid"方法-但他不停止在那里。所以这种方法从来没有被使用过。(? !)

有人有主意吗?非常感谢!

ASP.net MVC 4远程验证不工作

你必须省略controller部分在你的属性的控制器名称,它是由框架处理:

[Remote("IsLicenseValid", "HLR", "Lizenznummer ungültig")]