Asp.net mvc 4 在MVC4环境中使用Razor和Angular.js

Asp.net mvc 4 在MVC4环境中使用Razor和Angular.js,asp.net-mvc-4,angularjs,Asp.net Mvc 4,Angularjs,在我正在进行的一个项目中,我们的MVC4网站使用Razor和Angular.js的组合。我对前端web开发相当陌生,所以我不知道这是不是一个好主意。混合使用这些工具的优点和缺点是什么?同时使用这两种工具有什么意义?我可以与AngularJS+MVC4/Razor分享我们的经验:我们使用Razor只是为了本地化,所以Razor唯一允许的功能是“@somekeyword”。结果在客户端,我们得到了本地化的AngularJS模板。这允许进行最大限度的缓存(即使使用CDN) 至于MVC4,我们使用ASP

在我正在进行的一个项目中,我们的MVC4网站使用Razor和Angular.js的组合。我对前端web开发相当陌生,所以我不知道这是不是一个好主意。混合使用这些工具的优点和缺点是什么?同时使用这两种工具有什么意义?

我可以与AngularJS+MVC4/Razor分享我们的经验:我们使用Razor只是为了本地化,所以Razor唯一允许的功能是“@somekeyword”。结果在客户端,我们得到了本地化的AngularJS模板。这允许进行最大限度的缓存(即使使用CDN)

至于MVC4,我们使用ASP.NETWebAPI发送JSON数据。我们需要开发人员扩展来发送HAL(超媒体)响应


这提供了最大程度的解耦,并且在需要时可以切换到另一个后端。

我正在使用相同的技术堆栈。您知道是否可以引用角度路由中的模板页面(例如,
/somewhere/partials/mypartial.html
),然后让Razor引擎从
/somewhere/partials/mypartial.cshtml
中生成页面?这样,分部代码可以包括已翻译的资源字符串。谢谢@superjos您不能这样引用它,但您可以创建一个控制器动作
publicpartialviewresult Partial(string name){return PartialView(name);}
然后用以下命令调用:
/controller/Partial?name=mypartial
谢谢,这或多或少就是我最终遵循的路径。MVC路由类似于
/Controllers/Templates/{action}/{templateName}
,其中{action}用于分隔功能区域,并对应于
/Views/Templates/
中的文件夹。每个文件夹中都有不同的模板。还需要自定义ViewEngine将操作映射到文件夹名称。