我正在使用基本项目模板以及我拥有的几个示例来学习 MVC 3。事情进展顺利,但现在我正在尝试实现我的控制器,但遇到了几个问题。
到目前为止,我已经修改了 _Layout.cshtml 文件以定义一个带有指定路由的新链接:
<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 文件如下:
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 操作中。我知道我需要更改 List 方法以接受参数,那里没有问题,但是路由问题以及如何将此参数从 _Layout.cshtml 文件中的 RouteLink 传递到 List 方法。我已经尝试了一些东西,但这一点真的让我很难过。
我打算从我通过 AccountController 登录的用户传递一个 id,但是我会问另一个问题以保持这个更简洁。
非常感谢。