2013-09-05 11 views
16

Düğmeler gibi görünmesini istediğim iki tane @Html.ActionLink's var. Bunu CSS ile yapabilmeyi ancak CSS'u uygulamak için actionlink'in #ID değerini kullanıyorum. Eylem bağlantılarına bir sınıf atamak istiyorum ancak aşağıdaki kodu kullandığımda eksik bir "}" olduğumu belirten bir hata alıyorum. İşte @ Html.ActionLink öğesine nasıl bir sınıf ekleyebilirim?

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

Ben başvuruyorum Style:

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

Bu çalışır ve ben sadece tthe tarzı diğer #id eklemek olabilir ama Sınıf stil uygulamak istiyorum varsayalım.

+0

Olası yinelenen http://stackoverflow.com/questions/5608622/asp-net-mvc-add-css-class-to-actionlink VE http://stackoverflow.com/questions/1444495/how-do-i-apply-a-css-class-to-html-actionlink-in-asp-net-mvc –

+0

@FaceOfJock, her iki gönderiye baktım ve uygulamayı denedim çözümler ama başarılı değildi. –

+0

Önerilen tüm çözüm işe yaramadıysa, javascript'i çözüm olarak kullanabilirsiniz, öğenizi kimliğine göre seçin ve sonra sınıfınızı ekleyin –

cevap

54

Sınıf C# anahtar kelimesi olduğundan @ karakterini kullanmanız gerekir. İşte MSDN belgelerine bir bağlantı: 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

Argümanlarımı yanlış yaptım, Sorun buydu. Teşekkürler. –

+0

Bir sınıf ve bir kimlik istiyorsam ne olur? çünkü cevabınızdaki kimlik muhtemelen bir parametre hakkıdır? – Djeroen

+0

tamam ben zaten cevabı bulduk: 'new {@class =" my-class ", id = 4}' – Djeroen

6

Sorun, sınıfın C# cinsinden ayrılmış bir sözcük olduğu. Öyle gibi @ sembolüyle ile kaçan tarafından size nitelik adı olarak adı 'sınıf' kullanmak istediğinizi belirtebilirsiniz:

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

Bu, Html.ActionLink için çok fazla argüman değil midir? Önceki nesnedeki 'class'' id' ile birleştirilmemeli mi? – jmoerdyk

+0

@ chris.house, Bu çözümü denedim (yukarıda belirtilen olası yinelenen yayınlardan) ancak şu hatayı aldım: CS1928: 'System.Web.Mvc.HtmlHelper ', 'ActionLink' ve en iyi uzantı için bir tanım içermiyor yöntem aşırı yükü 'System.Web.Mvc.Html.LinkExtensions.ActionLink (System.Web.Mvc.HtmlHelper, string, string, string, object, object)' geçersiz argümanlar var –

+0

@AlanFisher - try @ Html.ActionLink (" PO yazdır, "PoReport", yeni {id = 51970}, yeni {id = "PoPrint", @class = "PoClass"}) ' – jmoerdyk

0

bu new { @class = "PoClass"} Sen sınıfı gibi anahtar kelimeler için @ gerekiyor mu

İlgili konular