我尝试使用JQuery方法将数据对象传递给MVC控制器。当我点击提交按钮时,它将在JavaScript方法中创建数据对象。 Ajax方法中的Data Object不为null。当我们将它传递给MVC控制器时,它正确地命中了方法但数据对象显示为空。
我也尝试过单个对象,但它也显示为null。
这是JQuery Ajax方法:
$(function () {
$('.save-user').on('click', function () {
var tr = $(this).parents('tr:first');
var SrcCountryId = $("#ExchangeRateSetUpHeader_SrcCountryId option:selected").val();
var DestCountryId = $("#ExchangeRateSetUpHeader_DestCountryId option:selected").val();
var SrcCurrencyId = $("#ExchangeRateSetUpHeader_SrcCurrencyId option:selected").val();
var DestCurrencyId = $("#ExchangeRateSetUpHeader_DestCurrencyId option:selected").val();
var Rate = $("#ExchangeRateSetUpHeader_Rate").val();
var RemittanceSettlementId = tr.find("#RemittanceId").val();
var CommPercentage = tr.find("#CommPercentage").val();
var CommFixed = tr.find("#CommFixed").val();
var SellRate = tr.find("#SellRate").val();
var Id = tr.find("#ItemId").val();
var ExchangeRateSetUp =
{
"Id": Id,
"SrcCountryId": SrcCountryId,
"DestCountryId": DestCountryId,
"SrcCurrencyId": SrcCurrencyId,
"DestCurrencyId": DestCurrencyId,
"Rate": Rate,
"RemittanceSettlementId": RemittanceSettlementId,
"CommPercentage": CommPercentage,
"CommFixed": CommFixed,
"SellRate": SellRate
};
$.ajax({
url: '/ExchangeRateSetUp/Create/',
type: 'POST',
data: JSON.stringify(ExchangeRateSetUp),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
}
});
});
});
这是我的MVC COntroller方法。
[HttpPost]
public JsonResult Create(ExchangeRateSetUp model)
{
return Json("Success", JsonRequestBehavior.AllowGet);
}
请帮我解决这个问题。 感谢。
答案 0 :(得分:0)
您将数据作为json
字符串传递,因此您需要在create
方法中将其作为字符串接受。
在create method中将ExchangeRateSetUp
对象更改为String
参数,然后将String
隐藏到ExchangeRateSetUp
对象:
public JsonResult Create(String model)
{
//convert String model into ExchangeRateSetUp here
return Json("Success", JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:0)
同样的事情发生在我身上。原因是没有{get;组;在c#类中定义为接受控制器中的模型。
检查你的类ExchangeRateSetUp是否有{get;组; }属性