1

更新しました。

私はあなたが言ったことを試しました。機能は。

  [HttpPost]
  public ActionResult populate_place(string lati, string longi)
   {
  list_placesModels list_place = new list_placesModels();
  list_place.Latitude = lati;
  list_place.Longitude = longi;
  return View();
   }   

ただし、新しいビューが表示されていないことを知っておいてください。どうしてか分かりません ?まだ古いビューが表示されます。新しいビューにリダイレクトしていません。新しいビューは表示されません。それはまだ同じビューに残っています。

////////////

Google マップのジオコーディング機能を使用して、asp.net mvc アプリケーションの Razor ビューで場所の緯度と経度にアクセスしています。

その緯度と経度をコントローラーの関数に渡したいです。しかし、何も起こっていません。以下は私のコードスニペットです。

JS コード:

if (status == google.maps.GeocoderStatus.OK) {

  map.setCenter(results[0].geometry.location);
  var marker = new google.maps.Marker( {
    map: map,
    [0].geometry.location
  });

  // I want to pass these value of latitude and longitude a function 
  // list_places() in UserController.
  latitude = results[0].geometry.location.lat();
  longitude = results[0].geometry.location.lng();   

  $.post("/User/list_places",
    {
      lati: latitude,
      longi : longitude
     });

コントローラ:

public ActionResult list_places(string usernameid, string lati, string longi) {

  list_placesModels list_place = new list_placesModels();
  list_place.Latitude = lati;
  list_place.Longitude = longi;
  return View(list_place);
}
4

1 に答える 1

1

まず、投稿しているアクションの [HttpPost] 属性、次に正しい数の引数です。2 を渡したように見えますが、3 を期待していますか? 実際の例については、以下を参照してください。

HTML/JavaScript

<script type="text/javascript">
function buttonclick() {
    var requestData = {
        lati: 'latitude',
        longi: 'longitude'
    };

    $.ajax({
        url: '/Home/populate_place',
        type: 'POST',
        data: requestData,
        dataType: 'json'
    });
};
</script>

<button onclick="buttonclick()">Click</button>

コントローラ アクション

[HttpPost]
public ActionResult populate_place(string lati, string longi)
{
    return RedirectToAction("About", "Home");
}

コントローラーのアクションにブレークポイントを設定すると、パラメーターを調べると、パラメーターが設定されていることがわかります。

于 2013-03-06T15:23:10.173 に答える