将json对象作为asp.net MVC中的字符串返回

时间:2013-09-06 02:33:33

标签: c# ajax asp.net-mvc razor-2

我正在尝试从我的视图中执行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>

警告框返回[object Object]。我试图获取“Person”对象的字符串值。

任何帮助都将不胜感激。

谢谢!

3 个答案:

答案 0 :(得分:2)

你没有离开警报,你可以指定你试图提醒的变量

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

答案 1 :(得分:1)

success: function (result) { alert(result[0].FirstName);} 返回json结果值时,您应该使用字段名称

指示索引号

答案 2 :(得分:1)

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