Я пытаюсь передать объект через форму своему контроллеру с помощью вызова AJAX.
Вот объект, все возвращает null
/ 0
, кроме AuctionId
:
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; }
}
Форма:
<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>
Вот вызов AJAX:
$('#createBid').on('submit', function (e)
{
e.preventDefault();
var $form = $(this);
$.ajax({
url: '@Url.Action("AddBid")',
type: 'POST',
dataType: 'html',
data: JSON.stringify($form.serialize()),
success: function (html)
{
$('#frmBid').html(html);
}
});
});
И затем у нас есть действие в контроллере:
[HttpPost]
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", Bid.AuctionId);
}
Итак, проблема в том, что какое-то значение, а не все значения возвращает null
.
Почему не AuctionId
null
, а другие?
Я также пыталсясделать новую модель представления, так как у меня уже был аукцион в качестве модели представления.Я сделал новый с Аукционом и Ставкой И я делаю форму похожей на это:
<form id="createBid">
<div id="frmBid" class="form-inline">
<input asp-for="BidVM.AuctionId" value="AuctionVM.AuctionId" type="hidden" id="auctionId" />
<label asp-for="BidVM.Amount" />
<input asp-for="BidVM.Amount" />
<button type="submit" id="submitBtn" class="btn btn-primary">Lägg</button>
</div>
</form>
Но теперь все равно нулю