2011-02-08 31 views
17

Có thể sử dụng thẻ HTML trong linkText của Html.ActionLink không? Ví dụ, nếu tôi muốn phần in đậm của văn bản của một liên kết tôi sẽ cố gắng một cái gì đó tương tự như sau:Sử dụng thẻ HTML bên trong linkText của Html.ActionLink

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%> 

nhưng đó chỉ là kết quả đầu ra

Some <b>bold</b> text 

Tôi biết tôi có thể làm điều này bằng cách sử dụng một neo thẻ và thiết lập URL với Url.Action, nhưng tôi chỉ muốn biết nếu điều này là có thể.

+0

Bản sao có thể có của [Đưa HTML vào trong Html.ActionLink(), cộng với Không có văn bản liên kết?] (Http://stackoverflow.com/questions/1974980/putting-html-inside-html-actionlink-plus-no-link -text) – KyleMit

Trả lời

7

Không; Điều đó là không thể.
Bạn cần viết thủ công thẻ <a>.

+0

Cảm ơn. Tôi chỉ muốn chắc chắn trước khi tự viết một thẻ –

+1

Sau 3 năm là nó vẫn không thể? – Givi

+5

Sau 4 năm là nó vẫn không thể? –

0

Không thể, nhưng bạn có thể tạo HtmlHelper cho việc này, hãy xem here hoặc sử dụng Url.Action thay vì những gì tôi muốn giới thiệu bạn.

31

Trình trợ giúp Html.ActionLink HTML mã hóa văn bản liên kết ngăn bạn nhúng HTML vào văn bản liên kết.

Vì lý do này, bạn không thể sử dụng Html.ActionLink và chuyển thẻ để tạo hình ảnh là siêu liên kết.

Đối với phong cách cơ bản của một liên kết, tôi khuyên bạn nên sử dụng một trong những Html.ActionLink quá tải để xác định một phong cách CSS thông qua cú pháp đối tượng ẩn danh như vậy ...

@Html.ActionLink("Please Edit Me", "Edit", null, new { style="font-weight:bold;" }) 

Thật không may, áp dụng đậm cho toàn bộ văn bản của siêu liên kết khi những gì bạn muốn chỉ là từ Chỉnh sửa được in đậm. Trong trường hợp mà tôi sẽ làm điều này ...

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a> 

... hay này ...

<a href="@Url.Action("Edit")">Please <span style="font-weight:bold;">Edit</span> Me</a> 
+0

Nếu Chỉnh sửa là một hành động của một bộ điều khiển khác, làm thế nào để tôi tham khảo nó? Ví dụ, tôi có hai bộ điều khiển: Trang chủ và Tài khoản. Nếu tôi hiện đang xem trang Đăng nhập của bộ điều khiển Tài khoản và tôi nhập '@ Url.Action (" Home ")' thì nó sẽ hiển thị: 'Tài khoản/Trang chủ'. Tôi muốn nó render thành 'Home/Index' trong đó' Home' là bộ điều khiển và 'Index' là hành động. Tôi đã thử làm '/ Home/Index'. – crush

+0

Tôi tìm thấy câu trả lời cho câu hỏi của mình là sử dụng tham số thứ hai của phương thức '@ Url.Action (string, string)'. Tham số thứ hai là tên bộ điều khiển bạn muốn nhắm mục tiêu. – crush

+1

Phương pháp @ Url.Action là tùy chọn linh hoạt nhất, vì nó cho phép bạn thao tác thêm thẻ neo –

0

này làm việc cho tôi:

@Html.Raw(@Html.ActionLink("XXX", "Index", new { }, new { @class = "FormBtn" }).ToHtmlString().Replace("XXX","<u>Back to List</u>")) 

Về cơ bản sử dụng ActionLink tạo html với trình giữ chỗ cho những gì bạn muốn thay thế ('XXX'), sau đó chuyển đổi nó thành Chuỗi HTML, thay thế trình giữ chỗ bằng đánh dấu của bạn, hiển thị chuỗi dưới dạng HTML.Raw.

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