2013-09-05 2 views
16

У меня есть два @Html.ActionLink's, которые я хочу сделать похожими на кнопки. Я могу сделать это с CSS, но только если я использую #ID actionlink для применения CSS. Я хочу назначить класс ссылкам на действие, но когда я использую код ниже, я получаю сообщение об ошибке, когда у меня отсутствует «}».Как добавить класс в @ Html.ActionLink?

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

Вот Стиль Я подаю:

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

Это работает, и я полагаю, я мог бы просто добавить другой #ID в Шарлем стиле, но хотел бы применить стиль к классу.

+0

Возможного дубликат http://stackoverflow.com/questions/5608622/asp-net-mvc-add-css-class-to-actionlink И HTTP://stackoverflow.com/questions/1444495/how-do-i-apply-a-css-class-to-html-actionlink-in-asp-net-mvc –

+0

@FaceOfJock, я посмотрел на оба этих поста и попробовал применить но не удалось. –

+0

, если все предлагаемое решение не работает, вы можете использовать javascript в качестве решения, вы выбираете свой элемент по id, а затем добавляете свой класс –

ответ

54

Вы должны использовать символ @, так как класс является ключевым словом в C#. Вот ссылка на документацию 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

У меня были неправильные аргументы, это был вопрос. Благодарю. –

+0

Что делать, если я хочу класс и идентификатор? потому что идентификатор в вашем ответе, вероятно, правильный? – Djeroen

+0

okay i allready нашёл ответ: 'new {@class =" my-class ", id = 4}' – Djeroen

6

Проблема в том, что класс является зарезервированным словом в C#. Вы можете указать, что вы хотите использовать название «класс» в качестве имени атрибута, убегая его с символом @, как так:

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

Разве это не слишком много аргументов для Html.ActionLink? Не следует ли сочетать '@ class' с' id' в предыдущем объекте? – jmoerdyk

+0

@ chris.house, я пробовал это решение (из возможных дубликатов сообщений, упомянутых выше), но получил эту ошибку: CS1928: «System.Web.Mvc.HtmlHelper » не содержит определения для ActionLink и лучшего расширения метод overload 'System.Web.Mvc.Html.LinkExtensions.ActionLink (System.Web.Mvc.HtmlHelper, string, string, string, object, object)' имеет некоторые недопустимые аргументы –

+0

@AlanFisher - попробуйте '@ Html.ActionLink (" Print PO "," PoReport ", new {id = 51970}, new {id =" PoPrint ", @class =" PoClass "})' – jmoerdyk

0

ли это new { @class = "PoClass"} Вам нужна @ для ключевых слов, таких как класс

Смежные вопросы