2012-10-18 18 views
10

Tôi mới trong ASP.NET C# và tôi có vấn đề với một số điều.Viết mã HTML bên trong biến trong ASP.NET C# và Razor

Trong PHP, tôi có thể lưu trữ HTML code bên trong một biến, ví dụ:

$list = "<li>My List</li>"; 
echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul> 

tôi đã cố gắng này trong ASP.NET và Razor

string List = "<li>My List</li>"; 
<ul>@List</ul> 

Nhưng ASP thay đổi "<" và " > "đến &gt;&lt; .. Bạn biết giải pháp nào cho điều này không?

Tôi có một câu hỏi khác, tôi có thể chèn biến bên trong một dấu ngoặc kép như PHP không?

echo "<ul>{$list}</ul>"; 

Trả lời

24

Công cụ dao cạo HTML mã hóa chuỗi theo mặc định, như bạn đã nhận thấy. Để tránh hiện tượng này, chỉ cần sử dụng Html.Raw():

<ul>@Html.Raw(List)</ul> 

Sửa

để làm cho một biến trong một chuỗi, Tôi cho rằng bạn có thể sử dụng string.Format:

@{ var someVariable = "world"; } 
@string.Format("<div>hello {0}</div>", someVariable) 

Mặc dù rằng có vẻ như overkill (ít nhất là cho ví dụ này) khi bạn chỉ có thể viết:

<div>hello @someVariable</div> 
+0

Cảm ơn dude, nó hoạt động. Và câu hỏi khác? Tôi có thể viết một biến bên trong dấu ngoặc kép như php? Tôi chọn câu trả lời đúng trong 9 phút, cảm ơn lần nữa. – Carasuman

+0

@Carasuman không có prob, vui mừng nó đã giúp - xem cập nhật của tôi ở trên, nếu điều đó giúp. – McGarnagle

+0

Tôi đã xem ấn bản của bạn, cảm ơn bạn đã trợ giúp! – Carasuman

Các vấn đề liên quan