c# - 在 MVC 中使用 AngularJs 时保持 View 的强类型

标签 c# angularjs asp.net-mvc razor typescript

我喜欢 MVC 的主要原因之一是 View 和 Controller 都是强类型的。这意味着我可以使用 Razor 语法直接从 View 调用模型中定义的变量:

<p>
    @Model.MyProperty // strongly typed
</p>

与此同时,Visual Studio 将提供智能感知、智能重构选项等。其优势显而易见。

相反,如果我决定使用 AngularJs(或任何其他客户端 UI 框架,实际上),我的 View 将如下所示:

<p>
    {{myProperty}} // this is just a string!
</p>

没有 intellisense,没有重构选项...我一个人呆在这里,因为 IDE 不知道 {{myProperty}} 是什么以及它的定义位置。换句话说,除了开发人员对应用程序结构及其变量名称的个人知识外, View 、模型和 Controller 之间没有任何契约。

由于我所有的 Angular 模型都与一个Typescript 接口(interface)相关联,是否有任何工具可以在基于这些 Typescript 接口(interface)的 View 中提供智能感知?

最佳答案

经过一些研究,似乎没有任何编辑器完全支持此特定功能(HTML for TypeScript 中的智能感知)。但是,您可以在某些中安装插件以获得名称的自动完成功能(因为括号语法特定于 Angular 和其他前端框架);有 VS、VS Code、WebStorm 的扩展:

--

此外,这篇博文可能无法解决您的问题,但如果您以不同的方式解决问题,可能会奏效: Strongly Typed Views with AngularJS

关于c# - 在 MVC 中使用 AngularJs 时保持 View 的强类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333405/

相关文章:

c# - 如何使用外键访问其他表的列

c# - 什么会导致此代码产生文件锁定错误?

javascript - 合并 json 对象并保留重复键

android - 在 InAppBrowser Ionic 中加载 Spinner

c# - 无法让 CORS 为 ASP.NET Core Web API 工作

javascript - 无法将 AngularJS 变量传递给 Bootstrap 中的 div 模态

c# - 如何在数组中从 ViewBag 传递的 ASP.NET MVC View 中显示特定范围的项目

regex - 电子邮件验证 MVC4 避免邮件站点

asp.net-mvc - Google Analytics 代码 - 将其放在 MVC 5 应用程序中的正确位置是否正确?

c# - 如何正确地将 lambda 表达式的 "var"结果转换为具体类型?