1

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

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 返回。

4

2 回答 2

0

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

于 2013-07-26T03:22:21.963 回答
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 函数来检查字段上的键,调用此控制器操作进行验证,然后根据结果显示您的警报。真的建议不要这样做。

于 2013-07-24T17:16:56.303 回答