MVC3 Razor: Displaying html within code blocks

后端 未结 6 1024
孤独总比滥情好
孤独总比滥情好 2020-12-12 17:39

In my cshtml files I have a lot of blocks with stuff like this:

@if(Model.foo)
{
    Hello World
}

The only reason

相关标签:
6条回答
  • 2020-12-12 18:10
    <text>Explicit HTML<text>
    
    @(Explicit C#)
    
    0 讨论(0)
  • 2020-12-12 18:16

    The above answers are great. I'm going to include a link to Scott Guthrie's article on this, since it shows some more examples and explanations.

    https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

    @if (p.UnitsInStock == 0 {
      <text>
        Donec in ante vitae purus consequat laoreet ut elementum
        purus. Ut ut tempus nulla, quis ultrices est. Integer
        pharetra ante in lectus porta, a lacinia ex faucibus. 
        Aliquam magna risus, pretium vel neque at, laoreet 
        ultrices lectus. Morbi posuere luctus risus. Nullam 
        tincidunt massa egestas nunc tempor scelerisque.  
      </text>
    }
    
    
    @if (p.UnitsInStock == 0 {
      @: Line 1
      @: Line 2
      @: Line 3
    }

    0 讨论(0)
  • 2020-12-12 18:17

    You can add text in as below:

    @if(Model.foo)
    {
        @:Hello World
    }
    

    when you use @ razor switch it to code block mode. Hence you need to specify text as above.

    0 讨论(0)
  • 2020-12-12 18:28

    You could use @: to escape:

    @if(Model.foo)
    {
        @:Hello World
    }
    

    or the special <text> tag which is not outputted in the response:

    @if(Model.foo)
    {
        <text>Hello World</text>
    }
    
    0 讨论(0)
  • 2020-12-12 18:34

    many developers has provided many ways above .. here is one more which is working fine in MVC 4 .. I hope it will work for MVC 3 also ..

    @if(Model.foo)
    {
        @Html.Label("Hello World")
    }
    
    0 讨论(0)
  • 2020-12-12 18:36
    @if(Model.foo)
    {
      @:Hello World
    }
    
    0 讨论(0)
提交回复
热议问题