我怎么能传递多个参数到jQuery AJAX 调用与数据类型HTML

30byixjq  于 2023-01-12  发布在  jQuery
关注(0)|答案(1)|浏览(107)

我使用以下jquery代码调用www.example.com核心控制器中的POST方法Asp.net

$.ajax({
            url: '@Url.Action("GetItemsForRelease", "PointOfSales")',
            data: { requestModel: TFObj },
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: function (responsedata) {
                $("#releaseItemsPush").html(responsedata);
            },
            error: function (error) {
                console.log(error);
            }
        });

但以下控制器操作显示空对象

[HttpPost]
public ActionResult GetItemsForRelease(RequestModel requestModel)
{
  return PartialView("_partialReleaseItem", requestModel);
}
krcsximq

krcsximq1#

以下控制器操作显示空对象
那么,根据您共享的代码片段contentType: "application/json; charset=utf-8导致您的控制器上的空数据,这是因为您将dataType定义为html,但contentType: "application/json; charset=utf-8",。当我们发送html作为dataType,它将视为text在控制器中,因此发布的数据已丢失,由于不匹配的数据类型。
假设您有以下模型:
型号:

public class RequestModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
    }

AJAX :

var TFObj = {};
            TFObj.Id = 1; // You can get HTML as $('#Id').val()
            TFObj.Name = "Test Name";
            TFObj.Email = "Test Email";
            console.log(TFObj);

            $.ajax({
                url: "/PointOfSales/GetItemsForRelease",
                type: "POST",
                data: { requestModel: TFObj },
                dataType: "html",
                success: function (responsedata) {
                    $("#releaseItemsPush").html(responsedata);
                },
                error: function (error) {
                    console.log(error);
                }
            });
    • 注:**通过检查控制台,确保您的数据已相应地从浏览器发布,如下所示:

控制器:

[HttpPost]
        public ActionResult GetItemsForRelease(RequestModel requestModel)
        {
            return PartialView("_partialReleaseItem", requestModel);
        }

输出:

    • 注意:**您可以看到我们正在控制器中获取数据。因此,只需删除您的contentType即可解决您的空数据。

相关问题