我想为我的行为生成常量网址。像这样:
public const string ControllerName_ActionName = "/ControllerName/ActionName";
我曾尝试使用T4MVC但它只生成T4MVC_System_Web_Mvc_ActionResult的方法。 有没有痛苦的解决方案吗?
我想在外部项目中将它们用作库。该项目不了解我的MVC应用程序。它可以是一个带WebClient的简单控制台应用程序。
答案 0 :(得分:0)
T4MVC还为Url.Action()
生成新的扩展方法。所以现在你可以使用这样的东西:
return Redirect(Url.Action(MVC.Account.Index()));
T4MVC只生成常量,因此您可以确定在编译路由时将正确生成运行时。生成包含url
=>之类的文件并不容易。 Controller.Action
因为这取决于您的路由配置,网址通配符,排序,http协议等。
如果您的项目没有MVC应用程序的知识,并且您希望有一个包含常量URL的文件,那么如果您的路由如下,它可以命中如何生成此文件:
routes.MapRoute( name: "Catch-all content route", url: "{*url}", defaults: new { controller = "ContentPage", action = "Index" }
答案 1 :(得分:0)
我为我的问题定制了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#>";
<#}
} #>
}