【发布时间】:2018-09-14 16:52:51
【问题描述】:
现在它只将 AuctionId 值输入到控制器中,其他道具要么为 null 要么为 0...
这是表格:
<form id="createBid">
<div id="frmBid" class="form-inline">
<input name="Bidder" asp-for="@bidModel.Bidder" value="@User.Identity.Name" type="hidden" />
<input name="AuctionId" asp-for="@bidModel.AuctionId" value="@Model.AuctionId" type="hidden" id="auctionId" />
<label asp-for="@bidModel.Amount" />
<input name="Amount" asp-for="@bidModel.Amount" />
<button type="submit" id="submitBtn" class="btn btn-primary">Lägg</button>
</div>
</form>
这是控制器中的操作:
public async Task<IActionResult> AddBid(BidModel Bid)
{
var result = await _bidBusinessInterface.CreateBidAsync(Bid, Bid.AuctionId);
if (result)
{
ViewBag.Message = "Bud lagt!";
}
else
{
ViewBag.Message = "Bud förlågt!";
}
return RedirectToAction("ViewDetails");
}
然后我们有实际的 AJAX 调用:
$('#createBid').on('submit', function (e)
{
e.preventDefault();
var $form = $(this);
$.ajax({
url: '@Url.Action("AddBid")',
type: 'POST',
dataType: 'html',
data: $form.serialize(),
success: function (html)
{
$('#frmBid').html(html);
}
});
});
我也在这里发布模型,如果需要查看哪里出错了:
public class BidModel
{
[JsonProperty("BudID")]
public string BidId { get; set; }
[JsonProperty("Summa")]
public int Amount { get; set; }
[JsonProperty("AuktionID")]
public string AuctionId { get; set; }
[JsonProperty("Budgivare")]
public string Bidder { get; set; }
}
我非常感谢每一个回答!这已经困扰了我 2 个小时..
【问题讨论】:
-
生成的url是否正确?您是否尝试使用 Postman 呼叫您的控制器?您是否检查过数据/数据格式是否正确?我不认为
serialize是你应该使用的。 -
生成的网址?是的,我知道控制器可以正常工作,我以前用过它,但没有 AJAX 请求
-
在您的浏览器中,您看到请求了吗?请求结束后的http代码是200吗?
-
您是否在浏览器的网络选项卡中看到 POST?你得到什么回应?
-
不,我没看到:P
标签: c# asp.net ajax asp.net-core