-1

我有 6 个产品页面。其中一个产品页面将有 6 个辅助页面。

我将如何为此创建控制器,所以我最终得到了干净的链接。

/Products/Product1
/Products/Product2
/Products/Product3
/Products/Product4
/Products/Product5
/Products/Product6
/Products/Product6/SecondaryPage1
/Products/Product6/SecondaryPage2
/Products/Product6/SecondaryPage3
/Products/Product6/SecondaryPage4
/Products/Product6/SecondaryPage5
/Products/Product6/SecondaryPage6

我已经研究过区域并且可以用它们完成我想要的,但是如果存在下划线,我没有任何运气来获取区域名称并用连字符连接它。我可以让控制器和动作连字符但不是区域。如果有人知道如何使该区域连字符,我将再次走这条路。

更多信息

这些是静态内容页面。不涉及数据库。我将如何设置一个控制器来生成上面的 URL?我的问题在于辅助页面以及如何处理这些页面。区域是唯一的方法吗?如果是这样,我如何修改路由以允许在区域名称中使用连字符,因为我将来可能需要它?

4

1 回答 1

1

您的问题没有真正的意义,特别是考虑到您想要的 URL 不包含任何连字符,但通常,一个区域的路由由一个名为[AreaName]AreaRegistration.cs. 在该文件的类中,有方法:

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "MyArea_default",
        "MyArea/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );
}

因此,您可以通过更改此默认路由轻松更改该区域在 URL 中的表示方式:

"My-Area/{controller}/{action}/{id}",

(请注意添加的连字符。这只是一个字符串,可以随意更改。URL 中的区域前缀不必与实际区域名称匹配。)

于 2013-04-04T00:56:20.950 回答