2012-07-25 24 views
9

Tôi tạo một String trong giao diện và muốn xuất nó ra màn hình.Dao phay MVC - Xuất văn bản vào vị trí

Ban đầu tôi đã thử Response.Write nhưng, vì lý do được giải thích ở nơi khác trên trang web này, nội dung xuất hiện ở đầu trang. Sau đó tôi đã cố gắng xuất chuỗi bằng cách sử dụng @ như sau: @myString.

Điều này làm việc, ở chỗ nó xuất văn bản ở đúng vị trí nhưng nó thoát khỏi các liên kết HTML mà tôi đã đặt trong đó. Làm cách nào để giải quyết vấn đề này?

+0

Cho đến khi bạn đánh dấu bất kỳ câu trả lời nào là câu trả lời bạn sẽ nhận được trả lời tương tự :) – VJAI

Trả lời

18

Bạn có thể sử dụng Html.Raw():

@Html.Raw(MyStringVar) 
+0

Cảm ơn câu trả lời. Điều này đã giúp tôi giải quyết vấn đề :) –

3

Thay vì chuỗi bạn sẽ muốn sử dụng:

@{ 
    var myString = new MvcHtmlString("<tags>Text</tags>"); 
} 

Sau đó, khi bạn inline làm cho nó:

@myString 

Nó sẽ hiển thị các giá trị chính xác thay vì văn bản đã trốn thoát.

Edit: Alternative

Các tùy chọn khác là bạn chỉ có thể tạo ra các inline MvcHtmlString nên nó ám một cách thích hợp.

@(new MvcHtmlString(myString)) 
+2

hoặc thậm chí tốt hơn '@ MvcHtmlString.Create (myString)' – Silvermind

+0

@Silvermind 'MvcHtmlString.Create' thực sự chỉ có 'mới MvcHtmlString' ... nhưng đã đồng ý cú pháp trở nên sạch hơn trong chế độ xem Dao cạo. Xem https://github.com/ASP-NET-MVC/aspnetwebstack/blob/4e40cdef9c8a8226685f95ef03b746bc8322aa92/src/System.Web.Mvc/MvcHtmlString.cs#L22 –

3

Bạn có thể sử dụng chức năng Html.Raw cho điều này

Ví dụ:

@Html.Raw(Model.YourString) 
2

Bạn có thể làm theo cách này:

@Html.Raw(myString) 
3

@model myString

@ Html.Raw (Model)

Hãy thử @ Html.Raw (myString).

Tôi không khuyên bạn nên làm điều này. Bạn không gửi đầu ra html vào màn hình vì nhiều lý do khác nhau. nếu bạn muốn đặt văn bản ở một phần nhất định của màn hình, hãy sử dụng kiểu dáng html/css trong giao diện và chỉ gửi đầu ra.

+0

Có các trường hợp như điều khiển người dùng dựa trên người trợ giúp HTML nơi bạn muốn gửi HTML thẳng đến màn hình. Nói chung tôi sẽ đồng ý với bạn nhưng kiến ​​trúc hiện tại tôi đang làm việc có nhu cầu rất lớn cho các điều khiển người dùng cơ sở và hiển thị HTML trực tiếp. Vì vậy, tôi ít nhanh hơn để đánh giá người khác vì muốn hiển thị HTML nội tuyến (Mặc dù có những cách tốt hơn để hoàn thành nhiệm vụ này cho câu hỏi đã cho này, nhưng ai biết tại sao họ cần làm điều đó.) – VulgarBinary

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