强类型的ActionLink助手,带有ASP.net MVC 3中的区域

时间:2011-07-13 15:36:53

标签: asp.net-mvc-3

MvcContrib中强类型的动作链接帮助程序似乎不适用于以下区域: -

namespace MySite.Areas.Bar.Controllers
{
  public class FooController
  ...

<%: Html.ActionLink<FooController> %>

路由到/ Foo,而不是/ Bar / Foo

还有哪些其他解决方案可用于创建与区域一起使用的强类型动作链接?

1 个答案:

答案 0 :(得分:0)

您可以使用[ActionLinkArea]属性来装饰您的控制器,以指示此控制器是区域的一部分(是的,除了使用反射并查看包含的命名空间是否包含Area之外,无法在运行时知道这一点它是不可靠的。这种行为将在ASP.NET MVC 4中发生变化,其中区域将成为框架的一等公民):

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

现在,以下内容将生成正确的链接:

<%= Html.ActionLink<FooController>(x => x.Index(), "Go to index in Bar area") %>