在 MVC 中以字符串形式返回 JSON 对象 asp.net

本文关键字:JSON 返回 对象 asp net MVC 字符串 | 更新日期: 2023-09-27 18:30:26

我正在尝试从我的视图中执行 ajax 调用,其中我从控制器返回一个 json 对象。 但是,当我尝试这样做时,我得到了对象类型,但没有将值作为字符串。 这是我的代码。

控制器

public class HomeController : Controller
{
    //
    // GET: /Home/
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult GetPerson()
    {
        var _model = _person;
        return Json(_model, JsonRequestBehavior.AllowGet);
    }
    static Person _person = new Person()
    {
        FirstName = "Steve",
        LastName = "Johnson",
        Age = 27
    };  
}

视图

@{
Layout = null;
}
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script src="~/Scripts/jquery-2.0.3.min.js"></script>
    </head>
    <body>
        <div>
            <form>
                <fieldset>
                    <legend>The Person</legend>
                    <label>Name: </label>
                    <input />
                    <label>Age: </label>
                </fieldset>
            </form>
        </div>
    <script type="text/javascript">
        $(document).ready(function() {
            $.ajax({
            url: '/Home/GetPerson',
            type: 'GET',
            success: function (result) { alert(result);}
        });
    });
    </script>

警告框返回 [对象对象]。 我正在尝试获取"Person"对象的字符串值。

任何帮助将不胜感激。

谢谢!

在 MVC 中以字符串形式返回 JSON 对象 asp.net

你没有去从警报中获取数据,你ddet指定你试图提醒的变量

 success: function (result) { alert(result.FirstName);}

success: function (result) { alert(result[0].FirstName);}返回 JSON 结果值时,应在字段名称后面指示索引号

尝试将alert(result);更改为alert(JSON.stringify(result); 这样,您就可以看到实际返回的 JSON 字符串。