0

如何检索从客户端发送的“数据”?(在“数据”字段中)

<script type="text/javascript">
    $(function () {
        $('#btnAddProductAjax').click(function () {
            var name = $('#txtProductName').val();
            var units = $('#txtUnitsInStock').val();
            var price = $('#txtPrice').val();

            $.ajax({
                url: '@Url.Action("AddProductAjax", "Home")',
                type: 'POST',
                dataType: 'JSON',
                data: {
                    productname: name,
                    unitsinstock: units,
                    price: price
                },
                success: function (data) {                        
                    $('#divResult').html(data);
                    alert('Product added successfully');
                }
            });
        });
    });
</script>

我如何使用这些数据

data: {
    productname: name,
    unitsinstock: units,
    price: price
 },

在我的服务器端操作“AddProductAjax”中?

public JsonResult AddProductAjax(string data)
{
    //retrieve data which is sent from client and do something
    return Json(json_data);
}

我试过了 :

  • 从 Request.QueryString[] 获取数据
  • AddProductAjax(字符串名称,整数单位,整数价格)
  • AddProductAjax(产品产品)

谷歌了几个小时,没有结果

UPD:如果我定义像这样的动作

    AddProductAjax(string productname, int unitsinstock, decimal price) 

- 什么都没发生。Ajax 甚至不调用此​​操作。如果我尝试

    AddProductAjax(string productname, string unitsinstock, string price)

- 在调试器中所有字段都是空的!

4

1 回答 1

0

它有助于向 MVC 指定使用 Attributes 操作应该期望什么类型的请求。HttpPostHttpGet属性都在 中找到System.Web.Mvc

像这样:

[HttpPost]
public JsonResult AddProductAjax(string productname, int unitsinstock, 
                                 decimal price)
{
    //logic...

    return Json(json_data);
}

如果一开始不起作用,您可能需要将参数(括号中的变量)定义为strings ,然后解析每个参数以检索其中的值,如下所示:

[HttpPost]
public JsonResult AddProductAjax(string productname, string unitsinstock, 
                                 string price)
{
    int units = 0;
    int.TryParse(unitsinstock, out units);

    decimal decPrice = 0.00;
    decimal.TryParse(price, out decPrice);

    //logic...

    return Json(json_data);
}
于 2013-10-18T21:27:28.870 回答