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 回答