jps*_*ook 6 razor asp.net-mvc-3
在针对不同问题的SO响应中,用户表示它允许您避免将路由值硬编码到html链接标记中,但这不是真正有效,因为您必须将控制器,操作,区域等放入字符串,所以你仍然硬编码路线值.
这怎么样:
@Html.ActionLink(linkText: "MyLink", actionName: "MyAction", controllerName: "MyController", new { id = @myId }, new { area = "SomeArea"})
Run Code Online (Sandbox Code Playgroud)
比这更好:
<a href='/SomeArea/MyController/MyAction/myId'>MyLink</a>
Run Code Online (Sandbox Code Playgroud)
仅当 (a) 您严格使用默认路由格式并且 (b) 您的应用程序始终安装在站点的根目录时,您的观察才是正确的。如果您不执行前者(例如创建一条前往 Home 控制器和 Help 操作的快捷路线 /help,然后通过引入具有更多操作的 Help 控制器来更改它,那么您将需要更新所有硬编码的锚标记。更好的替代方案是使用带有路由名称和其他可选参数的 RouteLink 帮助器。
对于后者,我通常使用单个服务器来进行大多数临时部署,并且应用程序并不位于站点根目录中,而是位于子目录中。生产部署是混合的,但许多应用程序安装在站点根目录下。使用助手可以让我忽略开发过程中的差异,因为助手在所有情况下都会正确构建相对于当前站点的 url。这非常有用,我什至通过 UrlHelper 将其用于脚本、CSS 文件、图像等,以确保为这些文件指定的任何路径不会在暂存和生产之间中断。
| 归档时间: |
|
| 查看次数: |
878 次 |
| 最近记录: |