asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – T4MVC @ Url.Action(MVC.Controller.Action())渲染“?Area =”QueryString中的参数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我将一个菜单从部分动作直接转换到布局,使用:
@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 ?? "");<# } #>

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – T4MVC @ Url.Action(MVC.Controller.Action())渲染“?Area =”QueryString中的参数全部内容,希望文章能够帮你解决asp.net-mvc – T4MVC @ Url.Action(MVC.Controller.Action())渲染“?Area =”QueryString中的参数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。