2

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.

HaBo
  • 13,999
  • 36
  • 114
  • 206

4 Answers4

1

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

public ActionResult Create()
{
    return View(new YourModelClass { GenericsOk = true });
}
qsoft
  • 424
  • 2
  • 5
  • 17
1

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.

George
  • 141
  • 1
  • 1
0

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

Justin
  • 609
  • 2
  • 10
  • 21
  • Justin, I have done that, please see the edit in my question. and correct me if i am missing anything. thanks – HaBo Oct 19 '11 at 20:15
0

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

Jared Peless
  • 1,120
  • 9
  • 11