2013-05-08 158 views

回答

48

在你的控制器動作渲染視圖則可以將模型的As屬性設置爲true:

model.As = true; 
return View(model); 

,並在你看來簡單:

@Html.CheckBoxFor(model => model.As); 

現在,因爲該模型爲屬性設置爲true,則CheckBoxFor助手將生成一個選中的複選框。

+0

我希望在不更改model.as中的值的情況下進行檢查.. 如何更改視圖中的值 – 2013-05-08 09:12:18

+3

要實現該功能的正確方法是在控制器中設置值。這就是CheckBoxFor幫手的設計目的。如果你不想遵循最佳實踐,你可以在視圖中用硬編碼'checked =「checked」''屬性手動生成複選框。 – 2013-05-08 09:13:19

+0

我嘗試過@ Html.CheckBoxFor(model => model.As,new {@checked =「true」})但它不起作用 – 2013-05-08 09:14:58

0

一種替代解決方案是使用jQuery:

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      PrepareCheckbox(); 
     }); 
     function PrepareCheckbox(){ 
      document.getElementById("checkbox").checked = true; 
     } 
    </script> 
0

我使用viewbag與控制器相同的變量名。例如,如果變量被稱爲「IsActive」,並且我希望在「創建」窗體上將其設置爲默認值,則在創建操作上設置值ViewBag.IsActive = true;

public ActionResult Create() 
{ 
    ViewBag.IsActive = true; 
    return View(); 
} 
1

你可以設置你的屬性模型的構造

public YourModel() 
{ 
    As = true; 
} 
25

老問題,但另一個「純剃刀」的答案是:

@Html.CheckBoxFor(model => model.As, htmlAttributes: new { @checked = true}) 
+5

這就是我正在尋找的答案。 – Spider 2016-07-21 06:02:50

+0

如果模型值爲「false」(複選框呈現未選中狀態),並且在模型值爲「true」時不需要,那麼這不起作用,那麼這段代碼的重點是什麼? – 2017-11-10 20:45:14

+0

什麼時候它是空的? ('bool?') – tonjo 2017-11-11 21:48:59

相關問題