如何为我的 ASP.NET MVC 操作生成常量 URL
本文关键字:操作 常量 URL MVC NET 我的 ASP | 更新日期: 2023-09-27 18:33:44
我想为我的操作生成常量 url。像这样:
public const string ControllerName_ActionName = "/ControllerName/ActionName";
我尝试使用 T4MVC,但它只生成具有T4MVC_System_Web_Mvc_ActionResult的方法。有没有没有痛苦的解决方案?
我想在外部项目中将它们用作库。该项目不知道我的 MVC 应用程序。它可以是带有 WebClient 的简单控制台应用程序。
在 Web 应用程序内
T4MVC还为Url.Action()
生成了新的扩展方法。例如,现在您可以使用这样的东西:
return Redirect(Url.Action(MVC.Account.Index()));
从外部库
T4MVC 仅生成常量,因此您可以确定在编译时将正确生成运行时的路由。生成包含 url
=> Controller.Action
之类的文件并不容易,因为这取决于您的路由配置、url 通配符、排序、http 协议等。
如果您的项目不了解 MVC 应用程序,并且您希望拥有一个包含常量 url 的文件,如果您的路由如下,则可能会命中如何生成此文件:
routes.MapRoute( name: "Catch-all content route", url: "{*url}", defaults: new { controller = "ContentPage", action = "Index" }
我已经为我的问题定制了 T4MVC 模板:
public static class UrlConst {
<#foreach (var controller in DefaultArea.GetControllers()) {
foreach (var action in controller.ActionMethods.ToList())
{ #>
public const string <#=controller.Name#>_<#=action.ActionName#> =
"/<#=controller.Name#>/<#=action.ActionName#>";
<#}
} #>
}