1

如何使用 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

4

3 回答 3

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) ; 

    });
于 2012-10-26T08:07:04.553 回答
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.

    });
}
于 2012-10-26T08:07:43.813 回答
0

您的脚本的第二部分是我假设的服务器端 Java。

你不能就这样返回它,jQuery 所做的就是向服务器发出一个 http 请求,然后服务器将返回一个响应。

正如鸽子评论的那样,您可以将响应格式化为 JSON 并在客户端使用 jQuery.getJSON。

于 2012-10-26T08:12:18.480 回答