Conditional Html attribute using razor

I have a situation where I want to display the button as enabled or disabled, depending on the property that was set in the view model.

@if (Model.CanBeDeleted)
{
    <button type="button" class="btn btn-danger btn-sm">
        <span class="glyphicon glyphicon-trash"> </span>
        Delete
    </button>
}
@if (!Model.CanBeDeleted)
{
    <button disabled="disabled" type="button" class="btn btn-danger btn-sm">
        <span class="glyphicon glyphicon-trash"> </span>
        Delete
    </button>
}

The code that is currently displayed in my view, which can be seen above, works.

However, I am looking for a way that I can only wrap an attribute disabledin an if statement, and not a separate button element for each case.

Any suggestions on how I can do this?

+4
source share
4 answers

You can use @Html.Rawto inject markup directly into elements

<button @Html.Raw(Model.CanBeDeleted?"":"disabled='disabled'") 
        type="button" class="btn btn-danger btn-sm">
  <span class="glyphicon glyphicon-trash"> </span> Delete
</button>
+8
source

:

<button type="button" class="btn btn-danger btn-sm" disabled="@Model.CanBeDeleted">
        <span class="glyphicon glyphicon-trash"> </span>
        Delete
</button>

. . , @Model.CanBeDeleted , disable . , @Model.CanBeDeleted , disable disable

?

Razor. cshtml ( vbhtml), :

  • null false, html.
  • true, AND , (: disabled=disabled, checked=checked... )
  • , (: class="@myvar" = > class="the_value_of_myvar ")
  • , , - .

, , .

+3

, disabled enabled.

@code
    var enabled = "disabled='disabled'";
    if(Model.CanBeDeleted)
    enabled = "";
    end code
    <button Html.Raw(enabled) type="button" class="btn btn-danger btn-sm">
            <span class="glyphicon glyphicon-trash"> </span>
            Delete
        </button>
0
<!button @(Model.CanBeDeleted?"":"disabled='disabled'") 
type="button" class="btn btn-danger btn-sm">
  <span class="glyphicon glyphicon-trash"> </span> Delete
</!button>

TagHelper ! ( )

Razor TagHelpers , , .

0

Source: https://habr.com/ru/post/1625522/


All Articles