1

私はこのようなビューを持っています

    @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 >&pound;@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 になっていることです。どうしてこれなの?

4

1 に答える 1

1

あなたのコードを分析した後、私は問題を見つけました。実際には、の値を表示しているだけですNextBidAmount。そして、フォームが再び投稿されると、モデルオブジェクトはその値を失いました。

モデルの投稿でその値を保持するには、すでに行ったように、その値の非表示フィールドを作成するだけです。AuctionId

@Html.HiddenFor(model => model.NextBidAmount)

これで問題が解決します。

于 2012-10-09T17:49:41.990 に答える