c# - ASP.net MVC 4 远程验证不起作用

标签 c# asp.net-mvc asp.net-mvc-4 remote-validation

我尝试验证 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/

相关文章:

c# - 如何使用 google sheet api v4 重命名工作表?

c# - 将参数传递给 ViewModel 中的构造函数

c# - 如何在可由另一个线程更改的 IEnumerable 上安全地调用 Count(Func)?

jquery - Kendo Grid 更改事件触发问题(当我单击一行时触发两次)

asp.net - Windows 身份验证多次请求

c# - 验证在 MVC 4 项目中不起作用

c# - 迭代器中的副作用被认为是有害的?

c# - 锁定每个用户的创建/更新/删除请求

vb.net - VB.Net 中的 CheckBoxFor Nullable Boolean

c# - 为什么 Newtonsoft.JSON 在每个元素的每个属性中放置一个 '$' 标志?