【发布时间】:2014-09-27 13:14:06
【问题描述】:
在我的 asp.net 站点中,我需要返回 jquery ajax 的简单 WebMethod:
{ "valid": true } or { "valid": false }
http://bootstrapvalidator.com/validators/remote/
为此我使用代码:
public class IsValid
{
public bool valid { get; set; }
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static IsValid ValidUser(string userName)
{
JavaScriptSerializer js = new JavaScriptSerializer();
var jsonData = new IsValid
{
valid = true
};
if (userName.IsEmpty())
{
// it's for other validator.
return jsonData;
}
User user = DbContext.Entity.Users.FirstOrDefault(c => c.UserName == userName.Trim());
if (user != null)
{
jsonData = new IsValid
{
valid = false
};
}
return jsonData;
}
但它在 js 函数中的 response.valid 中返回 response.d.valid 中的值
xhr.then(function(response) {
dfd.resolve($field, 'remote', response.valid === true || response.valid === 'true', response.message ? response.message : null);
});
我应该如何更改我的代码以返回 response.valid ? 谢谢。
【问题讨论】:
-
看起来
js对象从来没有被要求做任何事情。你想要的是:return js.Serialize(jsonData);(虽然 jsonData 在序列化之前不是 JSON 数据,所以我强烈建议重命名它)。 -
我试过了,在这种情况下,在 javascript 中它返回 response.valid = "undefined" 和 response.d = "{ "valid": true }"
标签: javascript jquery asp.net ajax validation