I need to check a checkbox by default:
I tried all of these, nothing is checking my checkbox -
@Html.CheckBoxFor(m => m.AllowRating, new { @value = "true" })
@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "true" })
@Html.CheckBoxFor(m => m.AllowRating, new { @checked = true })
@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "checked"})
This question is related to
asp.net-mvc-3
razor
I had the same issue, luckily I found the below code
@Html.CheckBoxFor(model => model.As, htmlAttributes: new { @checked = true} )
If we set "true" in model, It'll always true. But we want to set option value for my checkbox we can use this. Important in here is The name of checkbox "AllowRating", It's must name of var in model if not when we post the value not pass in Database. form of it:
@Html.CheckBox("NameOfVarInModel", true) ;
for you!
@Html.CheckBox("AllowRating", true) ;
only option is to set the value in the controller, If your view is Create then in the controller action add the empty model, and set the value like,
Public ActionResult Create()
{
UserRating ur = new UserRating();
ur.AllowRating = true;
return View(ur);
}
<input type="checkbox" @( Model.Checked == true ? "checked" : "" ) />
you set AllowRating property to true from your controller or model
@Html.CheckBoxFor(m => m.AllowRating, new { @checked =Model.AllowRating })
I did it using Razor , works for me
Razor Code
@Html.CheckBox("CashOnDelivery", CashOnDelivery) (This is a bit or bool value) Razor don't support nullable bool
@Html.CheckBox("OnlinePayment", OnlinePayment)
C# Code
var CashOnDelivery = Convert.ToBoolean(Collection["CashOnDelivery"].Contains("true")?true:false);
var OnlinePayment = Convert.ToBoolean(Collection["OnlinePayment"].Contains("true") ? true : false);
You can do this with @Html.CheckBoxFor()
:
@Html.CheckBoxFor(m => m.AllowRating, new{@checked=true });
or you can also do this with a simple @Html.CheckBox()
:
@Html.CheckBox("AllowRating", true) ;
This works for me:
<input id="AllowRating" type="checkbox" @(Model.AllowRating?"checked='checked'":"") style="" onchange="" />
If you really wants to use HTML Helpers:
@Html.CheckBoxFor(m => m.AllowRating, new { @checked = Model.AllowRating})
The syntax in your last line is correct.
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
That should definitely work. It is the correct syntax. If you have an existing model and AllowRating is set to true then MVC will add the checked attribute automatically. If AllowRating is set to false MVC won't add the attribute however if desired you can using the above syntax.
Source: Stackoverflow.com