私のデータ(json)をビューからajaxを通して私のコントローラに渡そうとしていますが、これはnullになります。事前にお問い合わせいただきありがとうございました。JSONをコントローラMVC3に渡す
これは私のモデルです。
public class TipificacionModel
{
public int Existente { get; set; }
public string Campo { get; set; }
public int Regla { get; set; }
}
public class ListasSeleccionModel{
public List<string> DatosSeleccion { get; set; }
}
public class ListaTipificaciones
{
public string NombreCampaña { get; set; }
public List<TipificacionModel> Tipificacion { get; set; }
}
public class DatosSeleccionMultiple
{
public List<String> Columnas { get; set; }
public List<ListasSeleccionModel> ListasSeleccion { get; set; }
}
public class TipificacionGeneralCampaña
{
public ListaTipificaciones CamposCreados { get; set; }
public List<DatosSeleccionMultiple> ListasDeSeleccion { get; set; }
}
これは私のajax機能です。
jsonListaGeneral = [];
jsonListaGeneral.push(jsonTipificacion);
jsonListaGeneral.push(jsonListasSeleccion);
console.log(jsonListaGeneral);
$.ajax({
url: '@Url.Action("crearCampManual", "DPS")',
type: 'post',
data: JSON.stringify(jsonListaGeneral),
contentType: 'application/json; charset=utf-8;',
dataType: 'json',
success: function (response) {
alert(response)
return;
},
error: function (x) {
alert(x.responseText);
}
});
これは私のコントローラです。
[HttpPost]
public ActionResult crearCampManual(TipificacionGeneralCampaña model)
{ //Here the model value is null, why?}
ブラウザのコンソールでjsonを印刷するとすべてがうまくいきます。しかし、何か悪いことが起きる、何かが間違っている。
jsonListaGeneral = [];
しかし、あなたのC#のモデルが配列ではありませんか。
JSON.stringifyはそうあなただけのコントローラメソッドに文字列を送信している....文字列内のJavaScript JSONテキストにオブジェクトを格納JSONテキストを回す... 'JSON.stringify'を削除してみてください – Hackerman
ajax呼び出しで渡すデータの構造を追加できますか? JSONオブジェクトのプロパティ名がC#モデルのプロパティ名と一致しない場合、この問題が頻繁に発生します。 –
@Hackermanあなたの答えをありがとう、stringifyを削除するAjaxは私のコントローラを見つけられませんでした。私のブラウザのコンソールでエラー500。 –