使用.NET MVC 4渲染独立的AngularJS应用程序

时间:2016-05-18 01:27:01

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

情况:

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

问题是什么? :

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

我已经尝试通过调用

来渲染应用程序的主页面
public ActionResult Index()
{
   return File(Server.MapPath("/AngularApp/") + "site_template.html", "text/html");
}

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

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

应该如何运作? :

enter image description here

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

我会对任何有效的解决方案表示感谢。

3 个答案:

答案 0 :(得分:2)

你可以使用ASP.NET MVC WebAPI,不需要任何chml页面,只需要纯html + js + css。请求 - http://www.codeproject.com/Articles/826307/AngularJS-With-MVC-Web-API 样本。

答案 1 :(得分:1)

为什么使用.NET来处理非常好的Angular前端内容?

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

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

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

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

答案 2 :(得分:0)

如果您只想返回html,可以使用

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

但是你真的不想在你的Views文件夹中使用你的css和js。