2013-09-05 92 views
16

Tôi có hai @Html.ActionLink's mà tôi muốn làm cho các nút trông giống như. Tôi có thể thực hiện điều này xảy ra với CSS nhưng chỉ khi tôi sử dụng #ID của liên kết hành động để áp dụng CSS. Tôi muốn gán một lớp cho các liên kết hành động nhưng khi tôi sử dụng mã bên dưới, tôi nhận được một lỗi nói rằng tôi bị thiếu "}".Tôi làm cách nào để thêm lớp học vào một @ Html.ActionLink?

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, 
       new { id = "PoPrint"} , new { class = "PoClass"}) 

Đây là phong cách tôi đang áp dụng:

<style> 
#PoPrint 
{ 
border: 4px outset; 
padding: 2px; 
text-decoration: none; 
background-color:lightskyblue; 
} 
</style> 

này hoạt động và tôi cho rằng tôi chỉ có thể thêm #ID khác để tthe phong cách nhưng muốn áp dụng phong cách cho Class.

+0

có thể trùng lặp http://stackoverflow.com/questions/5608622/asp-net-mvc-add-css-class-to-actionlink VÀ http://stackoverflow.com/questions/1444495/how-do-i-apply-a-css-class-to-html-actionlink-in-asp-net-mvc –

+0

@FaceOfJock, tôi đã xem cả hai bài đăng đó và đã cố gắng áp dụng các giải pháp nhưng không thành công. –

+0

nếu tất cả các giải pháp đề xuất không hoạt động, bạn có thể sử dụng javascript làm giải pháp, bạn chọn phần tử của bạn theo id và sau đó thêm lớp học của bạn –

Trả lời

54

Bạn phải sử dụng ký tự @ vì lớp là từ khóa trong C#. Dưới đây là một liên kết đến tài liệu MSDN: http://msdn.microsoft.com/en-us/library/dd492124(v=vs.108).aspx

@Html.ActionLink("Link Text", "ActionName", 
     new { controller = "MyController", id = 1 }, 
     new { @class = "my-class" }) 
+0

Tôi đã sai đối số của mình, đó là vấn đề. Cảm ơn. –

+0

nếu tôi muốn một lớp và một id thì sao? vì id trong câu trả lời của bạn có lẽ là một tham số đúng không? – Djeroen

+0

okay i allready tìm thấy câu trả lời: 'new {@class =" my-class ", id = 4}' – Djeroen

6

Vấn đề là lớp là một từ dành riêng trong C#. Bạn có thể chỉ định rằng bạn muốn sử dụng tên 'lớp' như tên thuộc tính của bạn bằng cách thoát nó với biểu tượng @ như vậy:

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, new { id = "PoPrint", @class = "PoClass"}) 
+1

Đó không phải là quá nhiều đối số cho Html.ActionLink phải không? Không nên kết hợp '@ class' với' id' trong đối tượng trước đó? – jmoerdyk

+0

@ chris.house, tôi đã thử giải pháp đó (từ các bài đăng trùng lặp có thể được đề cập ở trên) nhưng có lỗi này: CS1928: 'System.Web.Mvc.HtmlHelper ' không chứa định nghĩa cho 'ActionLink' và phần mở rộng tốt nhất phương pháp quá tải 'System.Web.Mvc.Html.LinkExtensions.ActionLink (System.Web.Mvc.HtmlHelper, chuỗi, chuỗi, chuỗi, đối tượng, đối tượng)' có một số đối số không hợp lệ –

+0

@AlanFisher - thử '@ Html.ActionLink (" In PO "," PoReport ", mới {id = 51970}, mới {id =" PoPrint ", @class =" PoClass "})' – jmoerdyk

0

Làm điều này new { @class = "PoClass"} Bạn cần @ cho các từ khóa như lớp