asp.net-mvc - T4MVC @Url.Action(MVC.Controller.Action()) 渲染 QueryString 中的 "?Area="参数

标签 asp.net-mvc t4mvc

我正在将部分操作中的菜单直接渲染到布局,使用:

@Html.Action(MVC.Menu.Index())

此操作确定要渲染哪个菜单部分。例如,公共(public)菜单部分。在这些部分中,我还使用 T4MVC 来呈现链接:

<ul id="navHolder">
<li class="level1">
    <ul class="mainMenu">
        <li><b>@Html.ActionLink("Welcome", MVC.Home.Index())</b>
           ... 

由于某种原因,T4MVC 渲染的 URL 末尾包含“?Area=”:

 <ul id="navHolder">
    <li class="level1">
        <ul class="mainMenu">
            <li><b><a href="/home/index?Area=">Welcome</a></b>
               ...

我的项目中没有任何区域,并且我已将“IncludeAreasToken”设置设置为 false。奇怪的是,只有当我使用“@Html.Action”渲染部分时才会发生这种情况 - 如果我将其作为“@Html.Partial”拉入,则不会渲染参数并且链接是干净且正确的。 (但我不想将其呈现为部分内容,因此请不要将其作为建议提供;)

有人遇到过这种情况吗?

最佳答案

我以一种非常简单的方式解决这个问题,只需添加到不在区域空区域 route 的所有路线,如下所示:

routes.MapRoute(
"Default",
"{controller}/{action}/{i​d}",
new { controller = "Home", action = "Index", area = "", id = UrlParameter.Optional });

关于asp.net-mvc - T4MVC @Url.Action(MVC.Controller.Action()) 渲染 QueryString 中的 "?Area="参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755729/

相关文章:

asp.net-mvc - 用于搜索的ASP.NET MVC自定义路由

c# - 如何手动验证具有属性的模型?

.net - Asp.Net MVC 路由表和 Controller 操作

c# - 返回未经授权的 ViewResult

jquery - 通过 Nuget 添加新版本的 Jquery 以及 t4mvc 的问题

asp.net-mvc - T4MVC 2.6.65 和 UseLowercaseRoutes=true 错误

asp.net-mvc - 为什么 T4MVC 尝试从 Html.ActionLink 运行 Controller 操作?

asp.net-mvc - asp.net mvc 3 - ajax 表单提交和验证

c# - T4MVC 扰乱了我的覆盖范围

visual-studio-2013 - 在 VS 2013 中手动运行 T4MVC 的最快方法是什么?