【问题标题】:MVC6 Strongly typed action links and viewsMVC6 强类型操作链接和视图
【发布时间】:2016-01-07 06:42:50
【问题描述】:

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

@Url.Action(MVC.Home.Index);

return View(MVC.Home.Views.Index, model);

在新应用程序中,我必须使用魔术字符串。我讨厌魔术弦。 MVC6 有什么替代方案吗?

【问题讨论】:

    标签: c# asp.net-core-mvc


    【解决方案1】:

    在 GitHub 上偶然发现了这个 AspNet.Mvc.TypedRouting 存储库,我认为当我最终迁移到 MVC6 时会很有用。

    不确定它是否也能处理视图

    自述文件中的一些说明

    要使用基于表达式的链接生成,您需要在 Startup 类中执行以下操作:

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

    【讨论】:

    • 这看起来符合要求!我要开始玩了!
    • 不幸的是,编译时找不到视图。要制作强类型视图,需要 Visual Studio 扩展。
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多