【发布时间】:2020-12-29 12:37:32
【问题描述】:
我想将一个数组和一个 Id 传递给控制器,但我尝试过的每个方法都给了我 null/0 值。
有人可以帮我看看我的代码中缺少什么吗?
这是我的 JS 代码:
addedParticulars = [{ FundRuleRid: fundRuleRid, FundRuleName: fundRuleName, Amount: amount }] //multiple values
function submitInvoice() {
if (addedParticulars.length === 0)
alert('Add any particular first')
else {
var jsonObject = JSON.stringify({ fundRules: addedParticulars, flatInvoiceRid: flat_invoice_Rid });
console.log(jsonObject);
$.ajax({
type: "POST",
url: "/FlatInvoice/ProcessInvoiceAmendment",
contentType: "application/json; charset=utf-8",
dataType: 'JSON',
data: jsonObject,
traditional: true
});
}
}
这是我的行动方法
public JsonResult ProcessInvoiceAmendment(List<FundRuleModel> fundRules, Guid flatIinvoiceRid)
{
return Json(new { status = _requestStatus, message = _responseMessage });
}
这是我的 .NET 类模型
public class FundRuleModel : BaseModel
{
public bool IsActive { get; set; }
public Guid FundRuleRid { get; set; }
public string FundRuleName { get; set; }
public int FundCycleRid { get; set; }
public string FundCycleName { get; set; }
public int FundRuleTypeRid { get; set; }
public string FundRuleTypeName { get; set; }
public int FundCalculationTypeRid { get; set; }
public string FundCalculationTypeName { get; set; }
public int FlatCalculationFilterRid { get; set; }
public string FlatCalculationFilterName { get; set; }
public decimal Amount { get; set; }
public DateTime ApplicableDate { get; set; }
public DateTime? EndDate { get; set; }
public string Narration { get; set; }
public bool IsIncludedInRegularInvoice { get; set; } = true;
//Used in FlatInvoiceLogic
public int Category { get; set; }
}
我在控制台中获取了所有值,但没有任何东西传递给控制器。
【问题讨论】:
-
客户端(浏览器)控制台有错误吗?检查服务器上的
Output窗口。你的ProcessInvoiceAmendment是用HttpPostAttribute装饰的吗? -
您应该创建具有“flatIinvoiceRid”属性和fundRules列表的模型,并且只向您的控制器发送一个参数
-
@Hopeless 客户端和服务器端都没有错误
-
@barzin.A 我们不能通过这种方法发送两个参数吗?另外我已经尝试过只发送一个参数(fundRules),但它没有得到控制器中的值。
-
@OkashaMomin 使用浏览器的
Inspect工具,打开Network选项卡,然后再次运行您的javascript 以捕获请求信息。它应该报告响应详细信息。一定有什么问题。
标签: jquery ajax asp.net-core-mvc