简体   繁体   中英

Showing Yes/No instead of checkbox in the View of ASP.Net MVC

I am very new to ASP.Net / MVC . I have created a View that I am populating from a model. I am creating a rows for each item in the model to show their properties/attributes of model item.

One of the member is a bool , name is Staged. In the View I want to display it as Yes if true or No if false. The user will only be able to read it, so simple text Yes/No shall be sufficient.

I am using the following code in the cshtml

    <td>
        @Html.DisplayFor(modelItem => item.Staged)         
   </td>

This however shows a checkbox in the place, how can I show it as Yes/No ?

Thanks,

You could use a custom html helper extension method like this:

@Html.YesNo(item.Staged)

Here is the code for this:

public static MvcHtmlString YesNo(this HtmlHelper htmlHelper, bool yesNo)
{
    var text = yesNo ? "Yes" : "No";
    return new MvcHtmlString(text);
}

This way you could re-use it throughout the site with a single line of Razor code.

use Html.Raw and render the string conditionally based on model value true/false

 <td>
      @Html.Raw((Model.Staged)?"Yes":"No")     
 </td>

In the model, you would need to make a new property that does something like this...

public string ItemStagedYesNo = (item.Staged) ? "Yes" : "No";

then in the view, do

@Html.DisplayFor(modelItem => ItemStagedYesNo);

Change

    @Html.DisplayFor(modelItem => item.Staged)         

to

    @(item.Staged?"Yes":"No")         

This is the simplest way to achieve what your requirements.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM