如何从MVC3控制器更改默认验证消息?

时间:2013-07-24 16:42:50

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有下面的代码问题,对我来说最简单的方法是显示弹出消息 并保持验证原样,但不知何故无法弄清楚如何直接从控制器显示信息消息而不返回视图。我知道这是不好的做法,但就我而言,这是最简单的事情。 当前代码验证了一个字段并使其失败(良好)但提供了默认的通用消息。我想更改该消息或显示带有其他信息的弹出窗口。

public ActionResult IsValidName(string param1)
        {
        //some code...
            var result = (count == 0);
            if (!result)
        //Popup Message(Record Exists!) and proceed

            return Json(result, JsonRequestBehavior.AllowGet);
}

我试过了:

    if (!result)
        return Json(new JsonResult { "Record already   exists",JsonRequestBehavior.AllowGet);

但不知道如何在我的验证javascript中拦截新的Json返回 默认消息来自哪里。

2 个答案:

答案 0 :(得分:0)

提供的信息真的不够,但我会概述正确的方法。

如果您的表单需要调用您的应用程序来验证特定字段,那么您可以方便地在模型中标记字段属性,如下所示:

模型

[Remote("ActionName", "Controller", ErrorMessage = "The name is not available")]
public string CompanyName { get; set; }

控制器

public ActionResult IsValidName(string param1)
{
        //some code...
            var result = (count == 0);
            if (!result)
        //Popup Message(Record Exists!) and proceed

        return Json(result, JsonRequestBehavior.AllowGet);
}

查看

@Html.TextBoxFor(x=> x.CompanyName)
@Html.ValidationMessageFor(x=> x.CompanyName)

这是一个很好的内置框架方式来做到这一点。它将在页面上显示错误消息。如果你真的想做一个警告框,你可以编写自己的jQuery函数来检查字段上的keyup,调用此控制器操作进行验证,然后根据结果显示你的警报。真的建议不这样做。

答案 1 :(得分:0)

好吧,我使用了Ajax路由并在javascript回调函数中添加了actionresult 并且工作正常。