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

asp.net-mvc – 如何为每个ActionLink指定默认区域而不添加area

发布时间:2020-12-15 23:20:08 所属栏目:asp.Net 来源:网络整理
导读:我有一个建立在ASP.NET MVC2 RC2上的大型现有应用程序. 我的所有链接如下所示:htp // site / controller / action / id 我刚刚添加了一个叫做BigBird的区域. 现在当我在BigBird区域时,我的所有链接如下所示:htp:// site / BigBird / controller / action
我有一个建立在ASP.NET MVC2 RC2上的大型现有应用程序.

我的所有链接如下所示:htp // site / controller / action / id

我刚刚添加了一个叫做BigBird的区域.

现在当我在BigBird区域时,我的所有链接如下所示:htp:// site / BigBird / controller / action / id

问题是我的新区域中没有这些控制器/操作.所以我必须遍历我所有的应用程序中的所有actionlink,并把这个routevalue:area = string.empty

有没有办法解决?

解决方法

如果您使用标准的MVC方法(除了可能会覆盖他们调用自己的版本),但是如果您使用的是ActionLink< TController>,则不知道如何使用它.或者在MvcFutures lib中提供的其他通用方法,那么你可以.

MvcFutures方法调用ExpressionHelper.GetRouteValuesFromExpression(),它在控制器上查找一个ActionLinkAreaAttribute来确定该区域.所以您可以在主要“区域”中装饰您的控制器,如下所示:

[ActionLinkArea("")]
[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

操作链接应该使用标准语法正确生成:

<%= Html.ActionLink<HomeController>(c => c.Index(),"Home") %>

(编辑:李大同)

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

    推荐文章
      热点阅读