我有一個模型具有布爾屬性和其他一些具有DataAnnotations Required屬性的屬性。如何使CheckBoxFor只有POST數據返回值爲true
在我看來,我有
@Html.CheckBoxFor(model => model.MyProduct.BloodTestEnabled, new { @class = "cb" })
但是,如果未選中該複選框的值是假的,這被回傳到控制器MyProduct.BloodTestEnabled是假的實例,但是,因爲它有MyProduct的一個實例,ModelState.IsValid等於false,因爲正在捕獲Required屬性。
如果複選框爲真,我只希望它通過模型綁定器創建的MyProduct的新實例回發給控制器。
什麼我設法做的是哪些修復它,但如果它的正確的不確定:
public class MyViewModel
{
public MyProdct MyProduct
{
get;
set;
}
public bool BloodTestEnabled { get; set; }
}
public ActionResult Add(ProductViewModel newProducts)
{
if (!ModelState.IsValid)
{
return View("HomeIndex", newProducts);
}
//Some other code here
newProducts.MyProduct.BloodTestEnabled = newProducts.BloodTestEnabled;
_basket.AddProduct(newProducts.MyProduct);
}
你可以使用html複選框,它具有您想要的行爲。 Htm.CheckBoxFor呈現隱藏字段發佈未經檢查的值 – 2011-06-07 20:01:02