Asp.net mvc 如何从asp mvc 5请求中获取POST数据

Asp.net mvc 如何从asp mvc 5请求中获取POST数据,asp.net-mvc,post,asp.net-mvc-5,Asp.net Mvc,Post,Asp.net Mvc 5,我和mvc5一起工作。我使用小部件将图像上传到云并调用事件。成功后,我需要将一些信息写入数据库。第一行代码中的数据 $(document).on('cloudinarywidgetsuccess', function (e, data /*this data I need in database*/) { $.ajax({ url: "/Cabinet/UploadImageCallback", type: "POST", data: da

我和mvc5一起工作。我使用小部件将图像上传到云并调用事件。成功后,我需要将一些信息写入数据库。第一行代码中的数据

$(document).on('cloudinarywidgetsuccess', function (e, data /*this data I need in database*/) {
    $.ajax({
        url: "/Cabinet/UploadImageCallback",
        type: "POST",
        data: data,
        success: function (data) {
            if (data.status == "success") {
                console.log(data);
            } else {
                console.log("db error");
                console.log(data);
            }
        },
        error: function (data) {
            console.log("An error has occured!!!");
            console.log(data);
        }
    });
});

我想以json格式获取控制器中的数据。如果我以这种方式发送到.php,我可以通过这种方式访问数据
$\u POST['KEY']
。如何在MVC5中获得类似的功能?

您可以使用模型作为参数;大多数情况下,ASP.NETMVC的默认ModelBinder可以映射到您的模型

$.ajax({
   url: "@Url.Action("UploadImageCallback", "Cabinet")", // If you want strongly-typed URL
   contentType: "application/json; charset=utf-8",
   method: "POST",
   data: JSON.stringify(data)
   ...
});

public class CustomerModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

[HttpPost]
public ActionResult UploadImageCallback(CustomerModel model)
{
    // Do something
}

数据
看起来怎么样?什么结构?创建一个具有相同结构的类,并将其用作参数。发布数据时,模型绑定器将发布的数据映射到该类的对象,您可以访问该对象。@Shyju谢谢,已解决。我已经阅读了有关模型绑定器的内容。因此,如果您需要一些字段,您可以编写下一个字段:
public ActionResult UploadImageCallback(string field1,string field3)
。Model binder在可用数据源中自动搜索与操作参数同名的json变量(POST、GET、SESSION-无所谓)。第一个名称相同,第二个绑定器尝试将字符串值转换为参数类型,如果两个条件都为true,则绑定器将值发送到操作。