Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC6强类型操作链接和视图_C#_Asp.net Core Mvc - Fatal编程技术网

C# MVC6强类型操作链接和视图

C# MVC6强类型操作链接和视图,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,目前,我们正在使用MVC6开发一个新的应用程序。在以前的版本中,我们使用T4MVC,因此我们可以执行以下操作: @Url.Action(MVC.Home.Index); 及 在新的应用程序中,我必须使用魔术字符串。我讨厌魔术弦。MVC6是否有其他替代方案?在GitHub上发现了这个存储库,我认为当我最终转到MVC6时,它会很有用 但不确定它是否也能处理视图 自述文件中的一些说明 要使用基于表达式的链接生成,您需要在启动类中执行以下操作: 基本上,您可以执行以下操作: //生成不带参数的链接

目前,我们正在使用MVC6开发一个新的应用程序。在以前的版本中,我们使用T4MVC,因此我们可以执行以下操作:

@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>()));