0

クライアント側でいくつかのコントロールを更新できるように、単純にjsonポストバックを作成しようとしています。これを示す良い例が見つかりません。

これは私がこれまでに得たもので、コントローラーからアラートを発しているように見えますが、クライアント側で「未定義」オブジェクトを言い続けています。

通常のコードと同じ方法でjavascriptをデバッグする方法がわからないので、これを達成するためのベストプラクティスの方法は何ですか? :(私はvs2012 Express、mvc 4、jquery 1.7.1、jquery mobile 1.1を使用しています。

私のコントローラーの時間/インデックス:

[HttpPost]
public JsonResult Index()
{
     var msg = "hello there";  //test message
     return Json(msg);
}

私のクライアント側:

function populateUserDetails() {
     var user = {};
     user.UserId = $("#UserId").val();    // potential fields i may use once i get it working
     $.post('Time/Index', user, updateFields, 'json');
 };

updateFields = function (data) {
    alert("hi " + data.msg);
    $("#textEntered").val(data.msg);
};

***アップデート** * ** * ***

コントローラーで返されたオブジェクトを一時クラスにラップすることで修正しました。

    [HttpPost]
    public JsonResult Index()
    {
        var response = new {msg = "hello there"};   //here's what i changed
        return Json(response);
    }
4

1 に答える 1

0

コードの最後の行を次のように置き換えます。

Json を返します (応答、JsonRequestBehavior.AllowGet);

だからそうあるべき

[HttpPost]

public JsonResult Index()
{
    var response = new {msg = "hello there"};  
   //here's what i changed

   return Json(response,JsonRequestBehavior.AllowGet);
}
于 2013-06-24T07:09:51.250 に答える