如何使用Javascript
访问从数据库返回的对象此功能从Javascript调用
function searchUser() {
var userName = document.getElementById('UserName').value
$.post("SearchForUser", { userName: userName }, function (UserInfo) {
UserInfo; //How to access the returned UserInfo properties?
});
}
我使用此代码从数据库中获取UserInfo
public UserInfo SearchForUser(string userName)
{
string password = "nicola";
using (FormValueEntities db = new FormValueEntities())
{
//Query the database for the user
UserInfo userInfo = new UserInfo();
userInfo = db.UserGet(userName, password).FirstOrDefault();
return userInfo;
}
}
UserInfo具有以下属性:UserName,UserPassword和Description
答案 0 :(得分:1)
如果您返回JsonResult
public JsonResult SearchForUser(string userName)
{
...
return Json(userInfo, JsonRequestBehavior.AllowGet);
//you don't need the AllowGet if this is a POST action, cannot tell
}
然后在JavaScript中,您可以轻松访问您的模型,例如
$.post("SearchForUser", { userName: userName }, function (UserInfo) {
console.log(UserInfo.UserName) ;
});
答案 1 :(得分:0)
您可以从方法Json返回操作。这将JSON序列化您提供的对象并返回JsonResult
。
public ActionResult Search(string usernameName)
{
return Json(SearchForUser(userName)); // borrows the result of your SearchForUser method and returns it as JSON-serialized string.
}
JsonResult
应该将响应内容类型设置为“application / json”,这意味着jQuery的$.post
应该看到该响应头并自动反序列化它。
function searchUser() {
var userName = document.getElementById('UserName').value
$.post("Search", { userName: userName }, function (UserInfo) {
alert(UserInfo.Description); // example of consuming the deserialized JSON messsage.
});
}
答案 2 :(得分:0)
脚本的第二部分是Java I假设的服务器端。
你不能像这样返回它,jQuery做的是向服务器发出http请求,服务器然后会发回一个响应。
正如dove评论的那样,您可以将响应格式化为JSON并在客户端使用jQuery.getJSON。