我有一个用ASP.NET MVC编写的现有应用程序,其中一个MVC视图中嵌入了Silverlight小部件。 Silverlight小部件位于其自己的项目中,并与WCF后端通信。
我的重写是使用Visual Studio Code在Angular4中。我在开发新的SPA应用程序方面取得了一些进展(简单的主页上有一些功能和一个通过路由实现的详细页面)。我通过Web API公开了WCF服务的功能,以提供安静的端点(到目前为止一直很好)。
让我难以理解的问题是如何将两者结合在一起。我参加简报时的计划是使用新的Angular4"小部件"将嵌入Silverlight小部件的div容器替换为MVC应用程序。
我显然需要在我的开发PC上以及我将部署到的IIS服务器上执行此操作。我们使用Visual Studio 2015,因为Visual Studio 2017不支持Silverlight。
答案 0 :(得分:3)
您的问题的潜在解决方案,您可以在ASP.NET MVC中创建局部视图,并引入角度应用程序。在您的部分视图中,请包含以下内容:
@Html.Raw(File.ReadAllText(Server.MapPath("~/dist/index.html")))
index.html将引入已编译和捆绑的html,JS和CSS文件。确保从src / index.html中删除标题和正文标记(如果有)。
你是否需要将角度构建过程与MVC一起放在VS工作室中?目前我分别构建角度应用程序和MVC应用程序(VSCode中的Angular)。
如果您坚持与MVC应用程序一起构建角度应用程序,您可以从角度应用程序触发NPM构建作为MVC应用程序中的构建事件。
转到启动项目属性,将以下命令放在预构建事件命令行中:
powershell start-process npm -ArgumentList '"run $(ConfigurationName)"'
这将根据您的构建配置名称触发npm脚本。例如,如果您有一个发布配置文件调用UAT,那么当您构建/发布项目时,它将在您的PowerShell中执行npm run UAT。