Reputation: 29186
Given the following viewmodel:
public class FooViewModel
{
public bool IsBoolValue { get; set; }
}
and this view:
<input type="hidden" id="Whatever" data-something="@Model.IsBoolValue" value="@Model.IsBoolValue" />
The output of the hidden input field is this:
<input type="hidden" id="Whatever" data-something="True" value="value">
How come the value
attribute is not set toTrue
, but the data-something
attribute is?
Is there a change in MVC 5 that would cause this, since in my MVC 4 apps this problem does not occur.
Upvotes: 42
Views: 23778
Reputation: 11
<div class="field_warp_hidden">
<input type="checkbox" asp-for="ShowGoogleCaptcha" checked="@Model.ShowGoogleCaptcha" value="@Model.ShowGoogleCaptcha"/>
</div>
can set field_wrap_hidden
is display:none;
checked
and value
must be set
2024/03/05 Additional answers
@Html.CheckBoxFor(x => x.RememberMe, new { @class = "form-check-input" })
This will handle the content.
Upvotes: 1
Reputation: 2000
I was using the hidden field in a partial view and I got an error when I used .ToString() alternative option was to specify the value property explicitly even after specifying asp-for
<input type="hidden" value="@Model.TargetmarketsToChangeAvailability[i].Available" asp-for="TargetmarketsToChangeAvailability[i].Available" />
Upvotes: 1
Reputation: 29186
I think I've figured it out.
I believe the Razor viewengine is adhering to the HTML 5 way of setting boolean attributes, as described here:
What does it mean in HTML 5 when an attribute is a boolean attribute?
In HTML 5, a bool attribute is set like this:
<input readonly />
or
<input readonly="readonly" />
So the Razor viewengine takes your model's bool value and will render (in my case) the value
attribute if Model.IsBoolValue
is true
. Otherwise, if it's false
then the value
attribute is not rendered at all.
EDIT:
As mentioned Zabavsky in the comments, to force the value of True or False to appear in the value
attrbiute, simple use ToString()
:
<input type="hidden" value="@Model.BoolProperty.ToString()" />
Upvotes: 58