我的 Controller 有 2 个命名空间。一个是默认的 MyProject.Controllers,第二个是 MyProject.Controllers.Framed。我正在使用命名空间,这样我就可以有一个像/home/index 这样的 url 提供正常的主页网站,而/framed/home/index 提供一个打算在 iframe 中使用的版本。
我的问题是,当我把 <%: Html.ActionLink("Home", "Index", "Home")%>
在我看来,它默认为/Framed/Home/Index。我相信这是因为在我的路由中首先添加了框架命名空间,并且首先找到了它。这是可以预料和期望的。
我的问题是如何设置 actionlink 中使用的命名空间?理想情况下,我希望我的网站将所有操作链接默认为默认命名空间 (MyProject.Controllers)。我开始怀疑将/framed 放在 url 中以更改渲染的便利性是否值得所有这些麻烦。
最佳答案
您可以尝试使用 RouteLink提供指定要使用的路由的方法的方法:
<%: Html.RouteLink("FramedRouteName", new { controller: "Home", action: "Index" }) %>
关于asp.net-mvc-2 - MVC 2 - 如何设置 actionlink 的目标命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961222/