将数据收集对象从Jquery ajax方法传递给显示null对象的MVC控制器

时间:2014-06-24 05:04:58

标签: javascript jquery ajax asp.net-mvc asp.net-mvc-4

我尝试使用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);
}

请帮我解决这个问题。 感谢。

2 个答案:

答案 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;组; }属性