C# MVC6强类型操作链接和视图
目前,我们正在使用MVC6开发一个新的应用程序。在以前的版本中,我们使用T4MVC,因此我们可以执行以下操作:C# MVC6强类型操作链接和视图,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,目前,我们正在使用MVC6开发一个新的应用程序。在以前的版本中,我们使用T4MVC,因此我们可以执行以下操作: @Url.Action(MVC.Home.Index); 及 在新的应用程序中,我必须使用魔术字符串。我讨厌魔术弦。MVC6是否有其他替代方案?在GitHub上发现了这个存储库,我认为当我最终转到MVC6时,它会很有用 但不确定它是否也能处理视图 自述文件中的一些说明 要使用基于表达式的链接生成,您需要在启动类中执行以下操作: 基本上,您可以执行以下操作: //生成不带参数的链接
@Url.Action(MVC.Home.Index);
及
在新的应用程序中,我必须使用魔术字符串。我讨厌魔术弦。MVC6是否有其他替代方案?在GitHub上发现了这个存储库,我认为当我最终转到MVC6时,它会很有用
但不确定它是否也能处理视图
自述文件中的一些说明
要使用基于表达式的链接生成,您需要在启动类中执行以下操作:
基本上,您可以执行以下操作:
//生成不带参数的链接-/Home/Index
Action(c=>c.Index());
//正在生成带有参数-/Home/Index/1的链接
动作(c=>c.Index(1));
//正在生成具有其他路由值的链接-/Home/Index/1?key=value
Action(c=>c.Index(1),新的{key=“value”});
//正在生成链接,其中操作需要编译参数,但不希望传递它们-/Home/Index
//*如果.No()只是一个表达式,您可以为引用类型传递'null',但它看起来很难看
Action(c=>c.Index(With.No());
这看起来很合适!我要开始玩了!不幸的是,在编译时找不到视图。要创建强类型视图,需要Visual Studio扩展。
return View(MVC.Home.Views.Index, model);
public void Configure(IApplicationBuilder app)
{
// other configuration code
app.UseMvc(routes =>
{
routes.UseTypedRouting();
});
}
// generating link without parameters - /Home/Index
urlHelper.Action<HomeController>(c => c.Index());
// generating link with parameters - /Home/Index/1
urlHelper.Action<HomeController>(c => c.Index(1));
// generating link with additional route values - /Home/Index/1?key=value
urlHelper.Action<HomeController>(c => c.Index(1), new { key = "value" });
// generating link where action needs parameters to be compiled, but you do not want to pass them - /Home/Index
// * With.No<TParameter>() is just expressive sugar, you can pass 'null' for reference types but it looks ugly
urlHelper.Action<HomeController>(c => c.Index(With.No<int>()));