我正在尝试将数据发布到ASP中的控制器。NET Core在控制器中接收null。
我无法将任何数据POST到端点。
在行动中
[HttpPost]
public ActionResult AddEarningg([FromBody] ProgramAddDTO program)
{
//_ProgramAppService.AddEarning(program);
ViewData["tenantlist"] = ListItems();
return View();
}
在 AJAX 代码中:
<script src="~/Common/Scripts/select2.min.js"></script>
<script>
$(document).ready(function () {
$("#SubProductCodeId").select2();
$("#ProductId").select2();
$("#ProductCodeId").select2();
$("#ProductCodeId").select2();
$("#CountryId").select2();
$("#MerchantId").select2();
$("#ChannelId").select2();
$("#SegmentId").select2();
$("#BtnSubmit").click(function () {
var formdata = {};
formdata.institutionId = $("#InstitutionId").val();
formdata.programName = $("#ProgramName").val();
formdata.productId = $("#ProductId").val();
formdata.productCodeId = $("#ProductCodeId").val();
formdata.subProductId= $("#SubProductId").val();
formdata.TransactionTypeId= $("#TransactionTypeId").val();
formdata.ChannelId= $("#ChannelId").val();
formdata.SubProductCodeId= $("#SubProductCodeId").val();
formdata.SpendToEarn= $("#SpendToEarn").val();
formdata.EquivalnetPoint= $("#EquivalnetPoint").val();
formdata.CountryId= $("#CountryId").val();
formdata.MCCId= $("#MCCId").val();
formdata.MerchantId= $("#MerchantId").val();
formdata.SegmentId= $("#SegmentId").val();
formdata.CapsMin= $("#CapsMin").val();
formdata.CapsMax= $("#CapsMax").val();
formdata.PointsExpiry = $("#PointsExpiry").val();
var t = JSON.stringify(formdata)
$.ajax({
url: '/app/Program/AddEarningg',
type: 'POST',
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ 'program': formdata }),
success: function () {
alert("test");
}
});
});
});
</script>
在DTO程序AddDTO类中
public class ProgramAddDTO
{
//public int? ProgramTypeId { get; set; }
public int InstitutionId { get; set; }
public string ProgramName { get; set; }
public List<int?> ProductId { get; set; }
public List<int?> ProductCodeId { get; set; }
public List<int?> SubProductId { get; set; }
public List<int?> SubProductCodeId { get; set; }
public List<int?> CountryId { get; set; }
public int? TransactionTypeId { get; set; }
public int EquivalnetPoint { get; set; }
public int PointValue { get; set; }
public List<int?> ChannelId { get; set; }
public List<int?> MCCId { get; set; }
public List<int?> MerchantId { get; set; }
public List<int?> SegmentId { get; set; }
public decimal CapsMin { get; set; }
public decimal CapsMax { get; set; }
public int? PointsExpiry { get; set; }
public int SpendToEarn { set; get; }
}
当我向post方法传递一个复杂的JSON时,它总是显示null。
我使用的是select2 jquery库。
2条答案
按热度按时间7z5jn7bk1#
首先,不要在json属性中使用大写字母。举个例子
应该成为
所以一个。
因为默认情况下。net www.example.com 中查找未大写的json属性,并将其转换为C#中以大写字母开头的相应属性。
并且请求应该简单地与:
wydwbb8l2#
它的工作是我当解析值从form到int