Hello在MVC应用程序中我在AccountController.cs
中有以下函数:
public JsonResult IsAvailableUN(string Username)
{
return Json(!Conn.Accounts.Any(Accounts => Accounts.Username == Username), JsonRequestBehavior.AllowGet);
}
其中Conn
是我的连接,Accounts
是表格,模型的名称和Username
是文本框中的字符串和表格的列名。
在Accounts
模型中,我在公共字符串Username
上方有以下配置:
[Remote("IsAvailableUN", "Account", ErrorMessage = "This username is already taken!")]
在我的观看中,我添加了必需的jquery.validate.min.js
和jquery.validate.unobtrusive.min.js
这应该触发我的Username
文本框,通过输入现有用户名并点击tab
后缀来提供错误,但是,浏览器的控制台会返回:
Uncaught SyntaxError: Unexpected token u in JSON at position 0
at Function.parse [as parseJSON] (<anonymous>)
at HTMLFormElement.l (jquery.validate.unobtrusive.min.js:5)
at Object.e [as errorPlacement] (jquery-3.1.1.min.js:2)
at c.validator.showLabel (jquery.validate.min.js:36)
at c.validator.defaultShowErrors (jquery.validate.min.js:34)
at c.validator.showErrors (jquery.validate.min.js:28)
at Object.success (jquery.validate.min.js:46)
at i (jquery-3.1.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.1.1.min.js:2)
at A (jquery-3.1.1.min.js:4)
我的返回json只包含1个单词:undefined
我在这里错过了什么吗?
答案 0 :(得分:0)
您的方法应该具有相同的参数,例如具有远程验证的属性。
检查你的房产名称。它应该是
[Remote("IsAvailableUN", "Account", ErrorMessage = "This username is already taken!")]
public string Username{get;set;} //Same as function parameter
返回应该是匿名类型。不是普通的真/假
var anonymous =new {
result=true;
};
return Json(anonymous , JsonRequestBehavior.AllowGet);
答案 1 :(得分:0)
!Conn.Accounts.Any(Accounts =&gt; Accounts.Username == Username)将返回布尔值(不是对象)。
它应该是json对象{&#34; propertyName&#34; :&#34;价值&#34; }。在你的情况下它应该是
{ "propertyName" : true }
或
{ "propertyName" : false}
您可以使用
var isValid = !Conn.Accounts.Any(Accounts => Accounts.Username == Username);
return Json(new { Valid = isValid }, JsonRequestBehavior.AllowGet);
答案 2 :(得分:0)
XCUIElement.isSelected
尝试这样。它应该是work.you应该返回数据作为JSON对象而不是布尔变量