How to have ASP.Net MVC 3.0 Checkboxfor as checked by default?

11.8k Views Asked by At

I want mt view to have the check box checked by default, I tried something like this.

@Html.CheckBoxFor(model=>model.GenericsOK, new { id = ViewBag.GenericsOK, @checked = true })

and also

@Html.CheckBoxFor(model=>model.GenericsOK, new { id = ViewBag.GenericsOK, @checked = "checked"})

in both cased it give the below error. String was not recognized as a valid Boolean.

My property is defined as this.

private bool _deafaultchecked = true;

    [Display(Name = "Generics Ok")]
    public bool GenericsOK
    {
        get { return _deafaultchecked; }
        set { _deafaultchecked = value; }
    }

any suggestions please?



Since i could not find a solution or this. i got this done like this.

 @Html.CheckBox("GenericsOK", true, new {id=ViewBag.GenericsOK, name="GenericsOK" })

this works for my requirement. thanks for all who helped me.

4

There are 4 best solutions below

0
On BEST ANSWER

You will want to remove the @checked="checked" portion of the HTML attributes. If the viewmodel property is a boolean then it is unnecessary when you use the CheckBoxFor

1
On

In the default constructor for your model class, you can set the "GenericsOK" property to "True"

0
On

In the controller action where you create the model just set that field value to true.

For example

return View(new DriverCsvModel{SendEmails = true});

You should be using the state of the model, rather than forcing the UI into a checked state.

0
On

In your controller's Create method (I presume), have you tried this?

public ActionResult Create()
{
    return View(new YourModelClass { GenericsOk = true });
}