【问题标题】:Rendering standalone AngularJS application with .NET MVC 4使用 .NET MVC 4 渲染独立的 AngularJS 应用程序
【发布时间】:2016-09-14 07:07:45
【问题描述】:

情况:

我已经创建了需要一些后端支持(DB Acess、Ajax 请求、文件上传支持)的独立 AngularJS 应用程序。我不想修改我的应用程序结构以适应 razor .cshtml 文件的要求,而且我根本不需要 razor 引擎支持。

什么问题? :

我需要实现的是简单地呈现我的 AngularJS 应用程序主页并强制 MVC 返回常规的 HTML+JS+CSS 应用程序结构。

我已经尝试通过调用来渲染应用程序的主页

public ActionResult Index()
{
   return File(Server.MapPath("/AngularApp/") + "site_template.html", "text/html");
}

在我唯一的一个简单控制器中,但只加载了纯 HTML,显然没有 JS 脚本或 CSS 文件。

我不熟悉 .NET MVC 框架,但是我相信这样简单的任务可以不使用专门的模板引擎来完成,因为 .NET 服务器和前端应用程序之间的所有通信都将异步处理。

它应该如何工作? :

MainPageController.cs 应该通过渲染它的主页 - site_template.html 来加载完全可操作的 AngularJS 应用程序,这显然会加载各种 .html 文件、JS 脚本、CSS 文件等。

如果有任何可行的解决方案,我将不胜感激。

【问题讨论】:

  • 您不能直接将site_template.html 重命名为site_template.cshtml 并直接从控制器提供视图吗?

标签: asp.net angularjs asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

您可以使用 ASP.NET MVC WebAPI 来完成,不需要任何 chml 页面,只需要您想要的纯 html+js+css。参考-http://www.codeproject.com/Articles/826307/AngularJS-With-MVC-Web-API 样品。

【讨论】:

    【解决方案2】:

    你为什么要使用 .NET 来处理完美的 Angular 前端?

    Angular 本身就非常好,您只需要 .NET asp 页面即可从数据库中获取数据并将其作为 JSON 字符串解析为 Angular。

    您必须将自己包含在 Angular 的 index.html 文件中的脚本。但是由于某种原因,您正在使用 url 重写 (/AngularApp/)?如果您使用 $routeProvider,Angular 已经是一个带有漂亮 url 的 SPA 解决方案。 https://docs.angularjs.org/tutorial/step_07

    只需在您的 IIS/Apache 网络服务器上创建一个虚拟目录并将所有文件转储到那里。

    我还建议从 Angular-seed 示例应用程序的副本开始,然后您的所有结构和链接都已预先设置链接并为您工作:https://github.com/angular/angular-seed

    【讨论】:

      【解决方案3】:

      如果你只想返回你可以使用的html

      public ActionResult Index()
      {
          return new FilePathResult(Server.MapPath("~Views/AngularApp/site_template.html"), "text/html");
      }
      

      但是你真的不希望你的 css 和 js 在你的 Views 文件夹中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-11
        • 2021-12-18
        • 1970-01-01
        • 2014-05-29
        相关资源
        最近更新 更多