답변:
알아 냈어 ..
Html.ActionLink("Link Text", "ActionName", "ControllerName", new { Area = "AreaName" }, new{})
이 직후에 다른 문제가 발생할 수 있다고 생각한 부분이 있습니다. 영역 내에서 영역이 아닌 작업으로 연결해야하는 경우 영역을 빈 문자열로 지정해야합니다.
예를 들어, 일부 MVC 코드를 영역으로 옮기고 사이트의 다른 페이지를 참조하는 마스터 페이지에서 URL을 업데이트해야한다는 것을 알았습니다.
영역에없는 URL을 지정하려면 다음을 사용하십시오.
Html.ActionLink("home", "Index", new { area = "", controller = "Home" })
사용하다:
Html.ActionLink("Text", "ActionName", "ControllerName", new { Area = "AreaName" }, null)
참고 : 네 번째 매개 변수는 route Values
를 전달하는 것이며, 빈 매개 변수를 전달하면 루트 구조를 고려하고 적절한 값을 전달하면 영역으로 사용됩니다.
또한 사용하는 것을 잊지 마세요 null
또는 new{}
통과하기 때문에 5 매개 변수로 null
또는 new {}
행동 링크를 만드는 동안 방법을 과부하가되지 않습니다 (text,action,controller,route data)
또는 (text,action,controller,route data,html attribute)
너무 적절한 방법을 사용
다음은 사용자가 사전 구축 된 인증 시스템에 링크 할 수있는 솔루션으로 제시 한 것입니다.
내 각 영역에는 _LoginPartial.cshtml 파일 버전이 있습니다.
응용 프로그램이 단일 버전의 파일을 사용하도록 할 수는 있지만 단일 로그인 부분을 사용하려고 할 때 계속 오류가 발생합니다.
원래 생성 된 loginpartial을 약간만 수정 한 것이지만 특정 영역에서 사용하면 잘 작동하는 것 같습니다.
다음은 모두 사용되는 코드입니다.
@if (Request.IsAuthenticated)
{
<text>
Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", new { area = "" }, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
</text>
}
else
{
<ul>
<li>@Html.ActionLink("Register", "Register", "Account", new { area = "" }, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", new { area = "" }, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
htmlAttributes:
여러 매개 변수를 사용하는 데 효과적이었습니다.
사용
@Html.ActionLink("DisplayText", "ActionName", "ControllerName", new { area = "AreaName"}, null)
당신이 후에 무엇을 달성합니다.
DisplayText는 (와 동일 <a href="#">DisplayText</a>
), ActionName은 컨트롤러에서 호출되는 메소드이며 ControllerName은 분명히 호출하려는 컨트롤러입니다! 다음 매개 변수는 지역을 추가 할 '경로 값'입니다. Home/Index
예를 들어 현재 Area에 있고 루트 로 다시 이동하려는 경우 값을 빈 문자열로 유지합니다 (예 :) new { area = ""}
. 마지막 값은 'Html Attributes'이며 원하는 경우 클래스를 추가하는 위치이며 추가 null
할 속성이없는 경우 이어야합니다 . 그러나 마지막 매개 변수는 'Html 속성'으로 표시됩니다. 라우트 값을 인식하려면이 값을null