내 MVC 웹 응용 프로그램에서 다음을 달성하는 가장 좋은 방법은 무엇입니까?ASP.NET MVC에서 프로그래밍 방식으로 스타일 적용 MVC MasterPage보기
저는 Site.Master라는 뷰 (내 MasterPage 뷰)를 가지고 있으며,이 뷰의 맨 위에는 5 개의 링크가 있습니다.이 링크는 내 메인 사이트 탐색 도구 역할을합니다. 내가 원하는 무엇
<ul>
<li><a href="">Home</a></li>
<li><a href="">Links</a></li>
<li><a href="">Contact Us</a></li>
...etc
</ul>
는 사용자가 현재보고있는 사이트의 어느 부분에 따라, 해당 텍스트 링크를 강조 할 수있다, 그래서 그들은 '문의하기'페이지를 사용한 경우 연락처 링크 마스터 페이지보기에 다른 CSS 스타일이 적용됩니다.
Web Forms에서 각 링크는 HyperLink 컨트롤이었고 MasterPage의 코드 뒤에 속성이 있으므로 각 HyperLink 컨트롤에 관련 CssStyle을 할당했습니다.
내 MasterPage보기에서 동일한 것을 달성하는 가장 좋은 방법은 무엇입니까? 이제 MVC를 사용하고 있습니까?
public static MvcHtmlString MenuLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName
)
{
string currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
string currentController = htmlHelper.ViewContext.RouteData.GetRequiredString("controller");
if (actionName == currentAction && controllerName == currentController)
{
return htmlHelper.ActionLink(
linkText,
actionName,
controllerName,
null,
new {
@class = "current"
});
}
return htmlHelper.ActionLink(linkText, actionName, controllerName);
}
그리고 내 생각에이 도우미를 사용
안녕하세요. 이것은 거의 완벽하게 작동합니다. 내가 가진 문제는 사이트의 해당 섹션 중 하나에 대해 해당 컨트롤러 (Article 또는 LatestArticle)에 대해 2 가지 가능한 작업 중 하나를 통해 해당 페이지로 이동한다는 것입니다. 부분 뷰는 기본 'LatestArticle'액션 대신 'Article'액션을 호출하는 사이트에서 사용하므로 부분 뷰를 통해 사이트의이 섹션을 탐색 할 때마다 Helper 메소드의 조건은 절대로 발생하지 않습니다. 'Article'이 actionName 매개 변수로 내 MenuLink 메서드에 전달되지 않기 때문에 만났습니다. 어떤 제안? – marcusstarnes
그럼 당신이해야 할 일은 도우미 메서드의 서명을 수정하여 단일 동작 대신 동작 목록을 수락 한 다음 현재 동작이이 목록의 요소 중 하나와 일치하는지 확인하는 것입니다. –