1

JSON をコントローラー アクションに投稿したいのですが、そのアクションによって、Ajax 応答とは異なる別のビューに誘導されます。

JS:

geocoder.geocode(
            {
                 'address': address
            },

            function (results, status) {
                if (status == google.maps.GeocoderStatus.OK)
                {
                    var o = { results: results };
                    var jsonT = JSON.stringify(o);
                    $.ajax({
                        url: '/Geocode/Index',
                        type: "POST",
                        dataType: 'json',
                        data: jsonT,
                        contentType: "application/json; charset=utf-8",
                        success: function (result) {
                            alert(result);
                        }
                    });
                }
        });

コントローラー:

 public ActionResult Index(GoogleGeoCodeResponse geoResponse)
 {
     string latitude = geoResponse.results[1].geometry.location.jb;
     string longitude = geoResponse.results[1].geometry.location.kb;
     ...
     return View("LatLong");
 }
4

1 に答える 1

4

通常のリクエストではJSONを投稿できないと確信しています。あなたの懸念がリダイレクトである場合は、ajax リクエストに固執し、成功関数でリダイレクトを処理することをお勧めします。

$.ajax({ type: "POST", data: { }, dataType: "json", url: "Home/AjaxAction" })
    .success(function (data) {
        window.location = data.redirectUrl;
    });

およびサーバーコード

[HttpPost]
public JsonResult AjaxAction()
{
    // do processing
    return Json(new { redirectUrl = Url.Action("AnotherAction") });
}

public ActionResult AnotherAction()
{
    return View();
}
于 2013-05-24T22:13:07.497 に答える