[英]MVC passing from view to controller data outside of the view model
我有一個用於在拍賣網站上創建拍賣的界面。
@using (Html.BeginForm("AddAuction", "Auction", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.title, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.title)
@Html.ValidationMessageFor(model => model.title)
</div>
</div>
(...) some other fields
<div class="form-group">
@Html.LabelFor(model => model.startDate, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.startDate)
@Html.ValidationMessageFor(model => model.startDate)
<input type="checkbox" id="gm" name="gm" value="Now" onclick=""> Now<br>
</div>
</div>
(...) some other fields (...)
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button type="submit" class="btn btn-default">Send</button>
</div>
</div>
}
我遇到的問題是“現在”復選框。 我希望它以這種方式工作,即當選中它時,控制器將把startDate設置為DateTime.Now。 不幸的是,我不知道是否可以在不編輯模型的情況下將復選框的值傳遞給控制器。 我正在尋找類似的東西:
public async Task<ActionResult> AddAuction(Auctions auction, **bool checked**)
有沒有辦法以這種方式傳遞參數?
如果您的復選框的值是bool,則可以執行以下操作:
<input type="checkbox" id="gm" name="gm" value="True"> Now<br>
<input type="hidden" name="gm" value="False">
並在控制器中
public async Task<ActionResult> AddAuction(Auctions auction, bool gm)
僅在選中復選框的情況下才提交復選框,因此,如果未選中復選框,則必須添加具有相同名稱的隱藏輸入以提交假值。
如果不想使用隱藏輸入,則可以使操作中的bool參數為可空,並將null視為false。
public async Task<ActionResult> AddAuction(Auctions auction, bool? gm = null)
{
if(gm == null)
gm = false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.