0

コントローラーから json オブジェクトを返すビューから ajax 呼び出しを実行しようとしています。ただし、これを試してみると、オブジェクトの種類は取得できますが、値は文字列として取得されません。これが私のコードです..

コントローラ

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」オブジェクトの文字列値を取得しようとしています。

どんな助けでも大歓迎です。

ありがとう!

4

3 に答える 3

2

アラートからデータを取得していない ddet で、アラートを発行しようとしている変数を指定する

 success: function (result) { alert(result.FirstName);}
于 2013-09-06T02:41:46.530 に答える
1

success: function (result) { alert(result[0].FirstName);} json の結果値を返すときは、フィールド名の後にインデックス番号を付ける必要があります

于 2013-09-06T03:27:12.590 に答える