我有一个看起来像这样的视图
@model UI.Models.BidOnAuctionViewModel
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@{
var disableButton = Model.AuctionOpen ? "" : "bid-btn-disabled";
}
@using (Html.BeginForm("ConfirmBid", "Lot"))
{
<fieldset>
@Html.HiddenFor(model => model.AuctionId)
<p>
<label >£@Model.NextBidAmount</label>
</p>
<p>
@if (Model.AuctionOpen)
{
<input type="submit" value="Place bid" class="bid-btn @disableButton" />
}
</p>
</fieldset>
}
点击“放置出价”按钮后,我转到confirmBid操作方法
[Authorize]
[HttpPost]
public ActionResult ConfirmBid(BidOnAuctionViewModel model)
问题在于,即使在视图中模型不为null,由于某种原因它在此操作方法中为null。这是为什么?
答案 0 :(得分:1)
在分析您的代码后,我发现了问题。实际上你只是显示NextBidAmount
的值。当表单再次发布时,模型对象失去了它的价值。
要在模型中保留其值,只需为AuctionId
@Html.HiddenFor(model => model.NextBidAmount)
这将解决您的问题。