gpt4 book ai didi

jquery ajax post 数据在 Controller 端始终为 Null

转载 作者:行者123 更新时间:2023-12-01 02:28:42 27 4
gpt4 key购买 nike

我一直在尝试使用 Ajax 发布,但 Controller 端的数据总是为 Null。请帮助:-

**Model:-**
public class UpdateProxyTracker
{
public string Test_Reference_Id { get; set; }
public string Owner { get; set; }
public string Remarks { get; set; }
public string Status { get; set; }
}

**View:**
@using (Html.BeginForm("UpdateTracker", "Home", FormMethod.Post, new { id = "optionForm" }))
{
<div>
<fieldset style="background-color: #FFFFFF">
<legend>Update Details</legend>
<table>
<tr>
<td>Test Ref Id</td>
<td>
<input id="testrefId" readonly="readonly" type="text" value=@Model.Test_Reference_Id>
</td>
</tr>
......
...
}

**JQuery:**
$(document).ready(function () {
$("#SaveT").click(function () {

var status = $("#statusddl").val();
var owner = $("#owner").val();
var remark = $("#remark").val();
var test_Reference_Id = $("#testrefId").val();

var data =
{
'Test_Reference_Id': test_Reference_Id,
'Owner': owner,
'Remarks': remark,
'Status': status
};

$.ajax({
url: '@Url.Action("UpdateTracker", "Home")',
type: "POST",
contentType: 'application/json',
dataType: 'json',
data: data,
success: function (msg) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});

});
});


**Controller:**
public ActionResult UpdateTracker(UpdateProxyTracker data)
{
SepHomeService svc = new SepHomeService();
bool isValid = svc.UpdateData(data);
var result = svc.GetData();
return View("Dataview", result);
}

路线: 路线.MapRoute( 名称:“默认”, url: "{ Controller }/{ Action }/{id}", 默认值:new {controller =“Home”,action =“Index”,id = UrlParameter.Optional} );

问题这里的数据始终为空。我尝试将数据作为 JSON.stringify(data) 传递,但没有帮助我们是否需要添加@Html.begin表单标签来进行ajax调用这里的数据在 ajax 调用之前填充,但未传递到 Controller 我们是否需要更新 Route 才能进行正确的 Ajax 调用?请推荐

最佳答案

试试这个,它对我有用

不要使用

contentType: 'application/json',
dataType: 'json',

如果方法不是 JsonResult,这些东西仅适用于 JsonResult 而不是 ActionResult

使用下面的方法。

$.ajax({
type: "POST",
data: {data:data},
url: '../{ControllerName}/{MethodName}',
success: function (response) {
},
error: function (response) {
alert(errorThrown);
}
});

关于jquery ajax post 数据在 Controller 端始终为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103435/

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