gpt4 book ai didi

c# - 如何在 asp.net mvc Controller 中获取发布的表单数据

转载 作者:行者123 更新时间:2023-11-30 18:28:44 26 4
gpt4 key购买 nike

我已经使用 View 中的 $.ajax 方法发布了数据。我没有在 Controller 中获取发布的数据我尝试过以不同的方式获取数据但没有成功。这是我发布的代码

       $.ajax({
url: "/Groupage/UpdateAddresses",
type: "POST",
contentType: "JSON/Application",
data: JSON.stringify(sr)
});


[HttpPost]
public void UpdateAddresses(IEnumerable<GroupageAddress> addresses,FormCollection coll)
{
//saving data in db
var list = Request.QueryString.Cast<GroupageAddress>();
var list1 = Request.QueryString.Cast<IEnumerable<GroupageAddress>>();
//getting null for addresses parameter
//Used request

}

这里是分组地址类属性

   public class GroupageAddress
{
[Key]
public int Id { get; set; }
[Required]
[Display(Name = "Transport Job Id")]
public int GroupageJobId { get; set; }
public int TransportJobId { get; set; }
//Company name is not required
[Display(Name = "Company Name")]
public string CompanyName { get; set; }
[Required]
[Display(Name = "Address1")]
public string Address1 { get; set; }

[Display(Name = "Address2")]
public string Address2 { get; set; }
[Required]
[Display(Name = "City")]
public string City { get; set; }
[Required]
[Display(Name = "County")]
public string County { get; set; }
[Required]

[Display(Name = "Post Code")]
public string PostCode { get; set; }
[Required]
[Display(Name = "Country")]
public int CountryId { get; set; }

[Required]
[Display(Name = "Global Transport Job Address Type Id")]
public int GlobalTransportJobAddressTypeId { get; set; }
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Date { get; set; }
[Display(Name = "Time From")]

public DateTime? TimeFrom { get; set; }
[Display(Name = "Time To")]

public DateTime? TimeTo { get; set; }
[Display(Name = "Actual Time")]

public DateTime? ActualTime { get; set; }

public int GroupageAddressSequenceId { get; set; }

[Display(Name = "Is Active")]
public bool IsActive { get; set; }
[ScriptIgnore(ApplyToOverrides = true)]
public virtual GroupageJob GroupageJob { get; set; }
}

这里是发布的表单数据 enter image description here

最佳答案

我观察到基于内容类型mvc会响应数据。我只使用了 $.post("/Groupage/UpdateAddresses",JSON.stringify(sr)) 但它发送的内容类型为 application/x-www-form-urlencoded;字符集=UTF-8当我像下面这样使用 with 时内容类型更改为“Application\JSON”

  $.ajax({
url: "/Groupage/UpdateAddresses",
type: "POST",
contentType: "Application/JSON",
data: JSON.stringify(sr)
});

以C#对象的形式反序列化数据作为方法中的参数。

关于c# - 如何在 asp.net mvc Controller 中获取发布的表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com