1

我一直在尝试对用户名登录访问使用 ASP.NET MVC 远程验证来返回字符串和布尔值。如果我只返回一个字符串,它将假定布尔值为 false 并且不允许用户提交表单。有没有一种方法可以同时传入 true 和字符串,例如“[USERNAME] is available!”?

当前方法:

public JsonResult isUserAvailable(string username)
    {
        if (Membership.GetUser(username) == null)
        {
            return Json(String.Format(CultureInfo.InvariantCulture, "<strong style='color: green;'>{0} is available!</strong>", 
                username), JsonRequestBehavior.AllowGet);
        }

        else
        {
            return Json(false, JsonRequestBehavior.AllowGet);
        }
    }
4

2 回答 2

1

使用 Json 对象发回数据,像这样修改你的 else 块并在客户端使用 JSON

 else
    {
       var data = new 
       { 
         result = false, 
         userName = username 
       };
 return Json(data, JsonRequestBehavior.AllowGet);
   }
于 2012-06-13T14:12:56.433 回答
0

正如@Furqan 建议的那样,您返回的数据不是 Json 而是 Html。

我建议你要么返回一个 Json 对象,要么返回一个不同的 ActionResult,也许ContentResult. 这篇文很好地解释了不同的ActionResult类型。

于 2012-06-14T02:09:34.703 回答