MVC3의 HTML.ActionLink에 클래스를 추가 할 수 있습니까?


83

이 코드가 있고 링크에 클래스를 추가하고 싶습니다. MVC3에서 이것을 할 수 있습니까?

Html.ActionLink("Create New", "Create")

"public class MyClass {...}"클래스 또는 "<a class='form-control' href='/MyController/MyAction'> Create New </a>"클래스?
LongChalk

답변:


150

예, css 클래스를 나타내는 객체로 다른 매개 변수를 추가 할 수 있습니다.

Html.ActionLink("Create New", "Create", CONTROLLERNAME, null, new { @class= "yourCSSclass"} )

다음으로 번역 할 수 있습니다.

Html.ActionLink(link text, action name, controller name, route values object, html attributes object)

편집하다:

사용자 정의 스타일을 추가하려면 다음을 사용하십시오.

Html.ActionLink(
"Create New",
"Create",
CONTROLLERNAME,
null,
new { @class= "yourCSSclass", @style= "width:100px; color: red;" }
)

훌륭한 답변에 감사드립니다. 그러나 지금은 모두 다른 매개 변수를 갖는 세 가지 다른 방법을보고 혼란 스럽습니다. 누군가 나에게 가장 좋은 아이디어를 줄 수 있습니까? 정말 고맙습니다.
Sango

1
@Sango : 첫 번째 매개 변수는 표시 될 실제 링크 텍스트입니다. 두 번째 매개 변수는 작업의 이름입니다. 세 번째는 컨트롤러의 이름입니다. 네 번째는 경로 값을 포함하는 객체입니다 (즉, 경로 / 액션에 전달해야하는 객체).이 경우이 값이 필요하지 않으므로 'null'로 만드십시오. 그리고 마지막은 링크에 CSS 클래스로 제공된 문자열을 추가하는 'class'와 같은 속성을 가진 htmlAttributes 객체입니다. 이미 언급 된 문서 에서 더 많은 것을 볼 수 있습니다 . Rhapsody의 답변은 다음과 같은 이유로 작동하지 않습니다 ..
Damb

1
"최고"는 없습니다. 이들은 모두 achor 태그를 렌더링하기위한 동일한 기본 코드를 가리키는 오버로드입니다. 선택할 오버로드는 URL에 필요한 내용에 따라 다릅니다.
RPM1984

1
모두에게 대단히 감사합니다. 이제 코드가 작동하고 멋지게 보입니다.
Sango

18
@Html.ActionLink("ClickMe",  // link text
                 "Index", // action name
                 "Home",  // controller 
                 new { id = 2131 }, // (optional) route values
                 new { @class = "someClass" }) // html attributes

@RPM-빠른 질문. 이 링크에 대해 너비와 같은 것을 다르게 지정할 수 있습니까? 내 버튼 텍스트가 평소보다 넓고 너비를 수정할 수 있기를 원합니다.
Sango

@Sango : 링크에 사용자 정의 스타일을 추가하는 방법을 보려면 내 대답을 확인하십시오.
Damb

나는 그것을 시도했지만 작동하지 않습니다. 주소 경로에 100px 값으로 width라는 매개 변수를 지정합니다
Sango

@Sango : 내 대답이 당신에게 보이지 않는 것 같습니다. 그럼 신경 쓰지 마. 처음부터 작업 답변을 돕고 자 노력
해주셔서 감사합니다.

btw 사용 @style은 나쁜 습관입니다. IMO는 <div style="color:red;">. CSS 클래스를 사용하십시오.
RPM1984

7
Html.ActionLink("Create New", "Create", null, htmlAttributes: new { @class = "className" })

5

htmlAttributes 매개 변수를 사용하는 ActionLink 오버로드를 사용하여 생성 된 요소에 클래스를 추가 할 수 있습니다.

Html.ActionLink("Create New", "Create", new {}, new { @class = cssClass });

5

문서 에 따르면 이것은 트릭을 수행합니다.

Html.ActionLink("LinkText", "Action", "Controller", new { }, new {@class="css class"})

편집 : Dampe에 주목 해 주셔서 감사합니다. 코드 샘플을 업데이트했습니다.


3
-1, 작동하지 않습니다 . 컨트롤러 이름 매개 변수와 동작 이름 매개 변수의 순서가 바뀝니다. 내 대답에서 올바른 순서를 볼 수 있습니다.
Damb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.