기본 프로젝트 템플릿을 사용하여 MVC 3을 학습하는 중입니다. 상황은 잘되고 있지만 지금 컨트롤러를 구현하려고하는데 몇 가지 문제가 있습니다. 다음과 같이기본 프로젝트 템플릿을 사용하는 기본 MVC 라우팅 쿼리
<header>
<div id="title">
<h1>My MVC Application</h1>
</div>
<div id="logindisplay">
@Html.Partial("_LogOnPartial")
</div>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.RouteLink("Contracts", "Contract")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
</nav>
</header>
내 global.asax.cs 파일은 다음과 같습니다 :
은 지금까지 나는 정의 지정된 경로로 새로운 링크를 위해 _Layout.cshtml 파일을 수정 한
routes.MapRoute(
"Contract",
"Contract",
new { controller = "Contract", action = "List", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
계약 컨트롤러에서 예상되는 동작보기를 반환하기 때문에 정상적으로 작동합니다.
그러나 목록 동작에 ID를 허용하도록 수정하고 싶습니다. 매개 변수를 받아들이려면 List 메서드를 변경해야하지만 거기에는 문제가 없지만 라우트에서 문제를 일으키고이 매개 변수를 _Layout.cshtml 파일의 RouteLink에서 List 메서드로 전달하는 방법을 알고 있습니다. 나는 몇 가지 시도를 해봤지만,이 비트는 정말 저를 뒤적 거리고 있습니다.
나는 AccountController를 통해 로그인 한 사용자의 ID를 전달하려고합니다. 그러나이 문제에 관해 계속해서 다른 질문을하겠습니다.
대단히 감사합니다.
내 URL에 매개 변수를 표시하지 않으려면 ActionLink를 통해 매개 변수를 전달하여 기본 경로가 계속 작동합니까? – XN16
맞습니다. 더 많은 매개 변수가 필요하면 별도의 경로를 만들어 더 많은 매개 변수를 허용하거나 쿼리 문자열에 전달하십시오. 이렇게하면 기본 경로가 그대로 유지되고 향후 컨트롤러가 예상대로 작동합니다. –