Reputation: 5156
I'd like a div to show if a ViewModel bool is set to true.
I tried this:
$(function () {
$("#myDiv").toggle(@Model.IsRequired);
}
But @Model.IsRequired
appears as either "True" or "False", rather than "true" or "false".
Any ideas?
Upvotes: 4
Views: 5311
Reputation: 737
Here's yet another way using jQuery / javascript:
Markup:
<... onclick='HandleClick()' ... />
Script:
function HandleClick() {
var isRequired = '@Model.IsRequired';
if (isRequired === 'True') {
$('#myDiv').toggle(true);
} else {
$('#myDiv').toggle(false);
}
}
Upvotes: 0
Reputation: 532595
Some alternatives to just lowercasing the string:
Use the ternary operator with actual strings
$(function () {
$("#myDiv").toggle(@(Model.IsRequired?"true":"false"));
}
or you can output different invocations depending on the value
$(function () {
@if (Model.Required)
{
$("#myDiv").toggle(true);
}
else
{
$("#myDiv").toggle(false);
}
}
or combine them
$(function () {
@(Model.IsRequired
?"$('#myDiv').toggle(true);"
:"$('#myDiv').toggle(false);")
}
Upvotes: 3
Reputation: 887827
You can just write @Model.IsRequired.ToString().ToLower()
.
I don't think there's any better solution (other than your own extension method)
Upvotes: 11