Я пытался воспроизвести исходный код. У него были некоторые проблемы с текущим кодом.
Пропущена настройка для атрибута Route в классе RouteConfig, без этой настройки [Route] аннотация / атрибут не работает.
routes.MapMvcAttributeRoutes()
При вызове ajax не использовал JSON.stringify для данных
var data = {
latitud: map.getCenter().lat(),
longitud: map.getCenter().lng()
};
$.ajax({
type: "POST",
async: false,
url: '@Url.Action("mapchanged")',
data: JSON.stringify(data),
dataType: "json",
contentType: 'application/json; charset=utf-8',
cache: false,
success: function (data) {
alert('Success');
window.location.href = data.url;
},
error: function (err) {
alert('error = ' + err.status);
}
});
Вы должны вернуть объект Json со свойством url вместо RedirectToAction
[HttpPost]
[Route("mapchanged")]
public ActionResult mapchanged(LongLat obj)
{
Session["Latitude"] = obj.latitud;
Session["Longitude"] = obj.longitud;
//return RedirectToAction("search?what=&by=bnm");
return Json(new {url = "search?what=&by=bnm"});
}
public class LongLat
{
public double latitud { get; set; }
public double longitud { get; set; }
}