MVC3 Razor: Hiển thị html trong các khối mã


131

Trong các tập tin cshtml của tôi, tôi có rất nhiều khối với những thứ như thế này:

@if(Model.foo)
{
    <span>Hello World</span>
}

Lý do duy nhất của khoảng đó là vì tôi không thể tìm ra cách nào khác để buộc nó nhận ra rằng "Hello World" là một phần của html trừ khi tôi bao quanh nó trong các thẻ html. Có cách nào tốt để thoát mã không liên quan đến việc thêm các thẻ vô nghĩa vào màn hình không?

Câu trả lời:


226

Bạn có thể sử dụng @:để thoát:

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

hoặc <text>thẻ đặc biệt không xuất ra trong phản hồi:

@if(Model.foo)
{
    <text>Hello World</text>
}


10

Bạn có thể thêm văn bản như dưới đây:

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

Khi bạn sử dụng @dao cạo, hãy chuyển nó sang chế độ khối mã. Do đó bạn cần xác định văn bản như trên.



8

nhiều nhà phát triển đã cung cấp nhiều cách ở trên .. đây là một cách nữa đang hoạt động tốt trong MVC 4 .. Tôi hy vọng nó cũng sẽ hoạt động cho MVC 3 ..

@if(Model.foo)
{
    @Html.Label("Hello World")
}

0

Các câu trả lời trên là tuyệt vời. Tôi sẽ bao gồm một liên kết đến bài viết của Scott Guthrie về điều này, vì nó cho thấy một số ví dụ và giải thích thêm.

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
}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.