簡體   English   中英

在ASP.NET MVC C#中Checkboxfor和Model的用法

[英]Usage of checkboxfor & model in asp.net mvc c#

我有一個模特

 public int Id { get; set; }
 public string Name { get; set; }
 public string Phone { get; set; }
 public bool IsChecked { get; set; }

我想在我的視圖中使用checkboxfor

 @Html.CheckBoxFor(model => model.IsChecked, new{@checked="checked"})

我的復選框未選中,並且視圖呈現其他輸入

 <input name="IsChecked" type="hidden" value="false">

我不知道它是如何工作的? 以及如何將復選框布爾值傳遞給我的模型? 謝謝。

如果在呈現控件時model.IsChecked為true,則復選框將以選中狀態啟動。

所以只要寫:

@Html.CheckBoxFor(m => m.IsChecked)

隱藏字段由helper方法生成始終為false,以確保表單發布時屬性名稱/值被提交,即使該復選框沒有被用戶選中,因為html表單僅包括選中的復選框。

如果選中此復選框,則其屬性將優先於隱藏字段,因為它位於該字段之前。

C#.NET MVC在CheckBoxFor()命令中存在一些問題。 CheckBoxFor()會自動生成一個具有相同名稱的隱藏字段,並且如果未單獨將其隔離在[Div]中,則會偶爾將支票丟到服務器上。 即使在[display-field] div中包含標題或驗證,也可能導致CheckBoxFor()出現問題。 解決方法是隔離CheckBoxFor()或添加[onchange]更新,並且看起來工作更一致。

<div class="display-field">
    @Html.CheckBoxFor(m => Model.IsChecked, 
     new { onchange = "this.value = this.checked;"})
</div>

現在,服務器端應自動將true false捕獲到具有相同名稱的bool模型中。

public bool IsChecked { get; set; }

當前在VS 2017 PRO上使用MVC 4.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM