[ad_1]
やあ、
JS 配列を MVC コントローラーに渡そうとしています。 同じコードを使用することで、API コントローラーでも同じことができました。 しかし、MVC コントローラーを使用して同じことを行うことはできません。
誰でも助けてください
これはJS側です
function GetColumnmappingValue() { var columnMappings = []; var count = 0; $('.row').each(function () { if (count > 0) { var sourceColumn = ""; var destinationColumn = ""; var sourceColumnIndex = ""; $(this).find(".column").each(function () { var input = $(this).find("select").each(function (i) { if (sourceColumn == "") { sourceColumn = $(this).find("option:selected").text(); sourceColumnIndex = $(this).find("option:selected").val(); } else { destinationColumn = $(this).find("option:selected").text(); } }); }); //if (sourceColumn.toLowerCase() != "select" && destinationColumn.toLowerCase() != "select") columnMappings.push({ SourceColumnIndex: sourceColumnIndex, SourceColumn: sourceColumn, DestinationColumn: destinationColumn }); } count++; }); $.ajax({ type: "POST", url: "/ExcelImport/SaveMappings", data: { '': columnMappings }, dataType: "json", success: function () { alert("Mapping Successful") }, failure: function () { alert("not working..."); } }); }
そしてこれがコントローラー
[HttpPost] public IEnumerable<ColumnMapping> SaveMappings(IEnumerable<ColumnMapping> columnMappings) { // do some registration work CreateXML(columnMappings); return columnMappings; }
問題は、配列カウントを取得していることですが、その中のすべての値が null ..
ありがとう
アルジュン・メノン
解決策 1
MVC は Newtonsoft を使用して逆シリアル化するため、これらの結果が表示されます。 配列があることは認識していますが、オブジェクト キーが null にマップされているため、値を割り当てる方法がわかりません。
JSON を修正すると、これは正常に機能するはずです。
$.ajax({ type: "POST", url: "/ExcelImport/SaveMappings", data: { columnMappings: columnMappings }, dataType: "json", success: function () { alert("Mapping Successful") }, failure: function () { alert("not working..."); } });
これは、jquery を使用した MVC 実装で機能します。
解決策 2
var Mapping= new Object(); Mapping.Column1= "EmployeeID"; Mapping.Column2= "Name"; Mapping.Column3= "Salary"; var param = new Object(); paramArray.columnMappings= new Array(); paramArray.columnMappings.push(Mapping); $.ajax({ type: "POST", url: "/ExcelImport/SaveMappings", data: JSON.stringify(paramArray), dataType: "json", contentType: "application/json; charset=utf-8", success: function () { alert("Mapping Successful") }, failure: function () { alert("not working..."); } });
解決策 3
これはうまくいきますか?mvcビューからコントローラーにリストデータを送信して挿入したい場合は、sugestaion plzを再生します
function save(CART_NO, CATRIDGE) {
アラート(‘こんにちは’);
var 日付 = {
カート番号: 100,
カートリッジ: 「安全」
}
$.ajax({
タイプ: ‘ポスト’,
url: ‘@Url.Action(“saveDetails”, “ホーム”)’,
データ: JSON.stringify(データ),
データ型: “json”,
contentType: ‘アプリケーション/json’,
成功: 関数 (応答) {
アラート(「成功」);
}、
失敗: 関数 (応答) {
}、
エラー: 関数 (応答) {
}、
});
}
[HttpPost]
public JsonResult saveDetails(Catridges_Model Catridges_Model)
{
var Result = service.saveDetailsCheckWise(カートリッジ_モデル);
Json(結果、JsonRequestBehavior.AllowGet) を返します。
}
[ad_2]
コメント