我看到人们使用Html.ActionLink()和Url.RouteUrl()等。 但是,如果路线需要重新设计,这肯定会导致维护噩梦吗?
人们如何以类型安全且易于管理的方式组织URL的生成?
答案 0 :(得分:2)
通过lambda表达式生成的强类型URL在MVC 1.0 beta时间段内可用一段时间。它已被删除,因为MVC架构实际上没有动作名称和控制器方法名称之间的1对1映射。有关详细信息,请参阅此Phil Haack blog post。
当然仍然可以这样做,假设你没有使用与方法名称不同的动作名称,它应该可以正常工作。
答案 1 :(得分:1)
如果您想调用某个操作,请使用Html.ActionLink()
。这将为所选操作创建<a href="..." ></a>
超链接。
如果您想创建网址而不是用于超链接,可以使用Url.Content()
或Url.RouteUrl()
。内容接受一个字符串并生成一个安全的URL。 Route url采用路径对象。
答案 2 :(得分:1)
您可以使用T4MVC在编译时为MVC网址生成类型安全检查。
T4MVC分析您的Controller类,并生成将生成类型安全URL的代码。
而不是
@Html.ActionLink("New customer", "Create", new { Controller = "Customer", orgID = orgID })
您可以使用以下代码:
@Html.ActionLink("New customer", MVC.Customer.Create(orgID))