加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – T4MVC @ Url.Action(MVC.Controller.Action())渲

发布时间:2020-12-15 18:33:09 所属栏目:asp.Net 来源:网络整理
导读:我将一个菜单从部分动作直接转换到布局,使用: @Html.Action(MVC.Menu.Index()) 此操作决定要渲染哪个菜单。例如,一个公共菜单部分。在这些部分中,我也使用T4MVC渲染链接: ul id="navHolder"li class="level1" ul class="mainMenu" lib@Html.ActionLink(
我将一个菜单从部分动作直接转换到布局,使用:
@Html.Action(MVC.Menu.Index())

此操作决定要渲染哪个菜单。例如,一个公共菜单部分。在这些部分中,我也使用T4MVC渲染链接:

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

由于某些原因,T4MVC提供的Urls最后包括“?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”拉入,则该参数不会被渲染,并且链接是干净和正确的。 (我不想把它作为一个部分,所以请不要提出这个建议;)

之前有任何人会遇到这个吗?

解决方法

这里有一些奇怪的事情,我想知道是否有一些MVC错误在根。即使没有使用T4MVC,如果你写:
@Html.ActionLink("Welcome","Index","Home",new { Area = "" },null)

在常规视图中,这不会产生虚假的区域=,而在一个Html.Action调用它。我需要问团队的人。

现在,您可以通过在t4mvc.tt中删除此行(围绕第310行)解决方法:

<# if (MvcVersion >= 2) { #>result.RouteValueDictionary.Add("Area",area ?? "");<# } #>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读