【问题标题】:Why does Bootstrap under ASP.NET Core install Razor?为什么 ASP.NET Core 下的 Bootstrap 会安装 Razor?
【发布时间】:2016-11-13 13:34:57
【问题描述】:

我已经部署了一个由 Yeoman (yo aspnet) 生成的 Core 网站,当被问及作为 GUI 管理器添加什么时,我有两个选择 - Bootstrap 和 Semantic。我选择了 Bootstrap,一切都很顺利,但是......

当我查看内容时,我意识到 empty web applicationweb application/bootstrap 之间的区别超出了我的预期。我得到了一个完整的 MVC 设置,包括视图、控制器等。当然所有视图都由 Razor 管理。

所以我的问题是跳过 Razor 是否有意义。如果是这样,还有什么选择(谷歌搜索对我的帮助很少)?

我打算使用 Angular 2。以后安装 Bootstrap 有意义吗?或者根本没有?

【问题讨论】:

  • 然而它主要是基于意见的,它是有道理的。
  • 嘿 Konrad,虽然这个问题更多的是基于意见的问题。由于您使用的是 .NET,因此您至少希望利用基本的 MVC 方面。 (虽然在使用 Angular2 时,一旦客户端接管,“视图”所做的一切就是加载 Angular2 应用程序。不过,在这种情况下使用 .NET Core 的一个好处是,您可以使用 Universal 在服务器上渲染 Angular(我们已将其集成到 .NET Core)。因此您可以获得更快的绘制、出色的 SEO 和更好的整体性能。
  • 如果您想尝试一下,我们在这里制作了一个 Angular2 + ASP.NET Core 启动器:github.com/MarkPieszak/aspnetcore-angular2-universal 这会让您朝着正确的方向前进!希望有帮助

标签: twitter-bootstrap angular razor asp.net-core


【解决方案1】:

如果您只需要 wwwroot 中的静态 index.html,那么您就不需要它。

必须是 yeoman 默认安装 MVC,默认情况下引导程序(NPM/Bower 依赖项)只是一堆 javascript 和 css 文件。

如果你需要控制器(用于 WebAPI/REST 服务调用,但不是 razor),你可以使用 "Microsoft.AspNetCore.Mvc.Core": "1.0.1" 依赖而不是 "Microsoft.AspNetCore.Mvc": "1.0.1"。后面的包还提取了 MVC 所需的所有依赖项,包括 Razor。使用Mvc.Core 包时,您需要在ConfigureServiuces() 中注册AddMvcCore() 而不是AddMvc()

如果您都不需要(因为您的 WebAPI 在不同的项目中),那么只需删除依赖项。但是你需要UseStaticFiles/UseDefaultFiles,但我想你已经知道了。

另外,如果您正在使用 Angular2,您可能对 Microsoft 的 JavaScriptServices 包感兴趣,它允许您将第一个请求预呈现给应用程序服务器端并继续在客户端执行它,从而加快第一次加载应用程序以及提供后备路由。

背景:Angular2 不使用哈希路由 (example.com/myapp#/some/route),但默认使用无哈希路由 (example.com/myapp/some/route),这可能会在您按下 F5 时导致问题在浏览器中而不是在应用程序根 URL 中。 routes.MapSpaFallbackRoute 调用 here 只会将所有请求路由到 SPA 应用程序根目录。

然而,它使用 MVC。不知道如何在没有 MVC 的情况下执行此操作,可能需要等待 ASP.NET Core 1.1 附带的URL Rewrite middleware

【讨论】:

  • 呵呵,我有AspNetCore.Mvc,认为是Core的MVC。但是不...我们需要声明 AspNetCore.Mvc.Core。不混乱。一点也不混乱... :)
  • 我可以在 ConfigureServices 方法中使用 AddMvcCore() 而不是 AddMvc()。但是,我仍然只能在方法 Configuration 中应用 UseMvc() 而不是 UseMvcCore()。我错过了什么?在here 中,他们也只讨论了服务中的 Add 而不是配置中的 Use。错字?
  • 对,我的错。我只记得它,因为我知道其中一种扩展方法调用它。 AddMvcCore 是正确的,UseMvc 已经在 Microsoft.AspNetCore.Mvc.Core 包中定义。
  • 嘿,我开始掌握它了。呜呼!谢谢你,就是这样。事实上,我经常在法兰克福,向南,就在斯图加特郊外,所以我坚持下次我不赶时间的时候给你买披萨。
猜你喜欢
  • 2020-11-21
  • 1970-01-01
  • 2019-04-17
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2018-09-20
相关资源
最近更新 更多