今日JSのJS部分からJSONを取得してC#メソッドに渡そうとしています。 現在のメソッドに結果を渡したときにnullになってしまう問題。ここでjsからMVCコントローラへのJSON
は私のJSの一部です:
GMaps.on('click',
map.map,
function(event) {
markers.push(new Point(map.markers.length, event.latLng.lat(), event.latLng.lng()));
var index = map.markers.length;
var lat = event.latLng.lat();
var lng = event.latLng.lng();
map.addMarker({
lat: lat,
lng: lng,
title: 'Marker #' + index
});
console.log(JSON.stringify(markers));
});
function TestJSON() {
$.ajax({
url: "@Url.Action("ReturnJson","Home")",
type: "POST",
data: JSON.stringify(markers),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
};
あなたがコードからわかるように、コンソールに私はマーカーの配列が空でない確認し、すべての新しいクリックした後、私は、配列に値を追加します。 私はそれを保存したいすべてのマーカーを見つけるので、私はそれのためのボタンを作った。それはどのように私のhtmlコードのように見える
public class TripPoint
{
public string Name { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
}
public class TripRoute
{
public List<TripPoint> route = new List<TripPoint>();
}
:ここ
は私のデータモデルである<form>
<button type="button" value="Save your route " onclick="TestJSON()"></button>
</form>
そして最後に
それJSON文字列を取得する必要があります方法どのように見えるか[HttpPost]
public ActionResult ReturnJson(string json)
{
// **********************************
// PROBLEM HERE: json is null
// **********************************
TripRoute route = new JavaScriptSerializer().Deserialize<TripRoute>(json);
return new EmptyResult();
}
なぜ、私がヌル文字列を取得するのを助けてください。
upd。
は、ここに私のルートの設定
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "ReturnJSON",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "ReturnJSON", id = UrlParameter.Optional }
);
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
}
}
nullは何ですか?いつ?あなたは 'ReturnJson()'の 'route'がヌルか空であると言っていますか?どこかの文字列か? 'JSON.stringify(マーカー)'は何を返しますか? –
あなたはRouteCollectionにあるものを示してください。私は、Global.asax.csのRegisterRoutesメソッドを意味します。 – Antipod
@EdPlunkettああ、メソッドReturnJsonでパラメータ "string" jsonがnullです。私がボタンを押すと(私はこれを理解しています)JSJの値をCシャープメソッドに渡すJSの関数TestJsonを呼び出しますか?私が間違っている? JSON.stringify(マーカー)は何を返しますか? 私はそれがjson形式でデータを返すと思います。 – whoiskatrin