如何从同一个项目中的角度4页面导航到asp.net Web表单

问题描述 投票:0回答:1

我需要保持4页角和asp。一个项目中的网络表单,因为网络需要从asp.net转换为角度,这不能一次完成,所以我需要保持页面和功能正常。

如何从同一个项目中的角度4页面导航到asp.net Web表单。

任何帮助将不胜感激

.net angular
1个回答
0
投票

我们能够在MVC应用程序中提供角度2应用程序。我们也想慢慢从MVC迁移。因此我们将该功能重新编写为角度优先,角度开发完全独立,然后将编译的角度应用程序复制到我们的mvc应用程序中,实际上我们有脚本来处理角度编译和复制。然后我们通过剃刀视图交付了角度应用程序。由于角度应用程序是在剃刀视图中提供的,因此我们可以包含链接,我们的角度应用程序位于我们的主要mvc布局中。

具有角度应用程序的剃刀视图是来自我们的角度应用程序的index.html,其中一些剃刀将东西传递到mvc的角度应用程序中。

<!doctype html>
<html lang="en">
<head>
<title>Page with SPA</title>
<base href="/set/base/ref/">
<link href="styles.bundle.css" rel="stylesheet" />
</head>
<body>
<div>
    <a href="/SomeController/Index/Index">
        <i></i> back to list
    </a>
    <h4>approve</h4>
</div><div>
<angular-comp somePathNeeded="@Model.SomeData" someIdNeededByAngular="@Model.SomeId" taskId="@Model.SomethingElse" someUrlNeededByAngular="/Url/Inside/Mvc" lastTaskId="@Model.MoreData" firstTaskId="@Model.OtherData" nextTaskId="@Model.MoreDataId" previousTaskId="@Model.OtherthingsINeedInAngular"></angular-comp></div>
<script type="text/javascript" src="./assets/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="./assets/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="./assets/js/jquery-ui-1.8.14.min.js"></script>
 </script>
<script type="text/javascript" src="inline.bundle.js"></script>
<script type="text/javascript" src="polyfills.bundle.js"></script>
<script type="text/javascript" src="vendor.bundle.js">    </script>
<script type="text/javascript" src="main.bundle.js"></script>
</body>
</html>

如上所示,这只是angular cli ng build命令的输出,ng build命令中的所有工件都被复制到一个目录中,因此angular应用程序可以在mvc内部运行。您还可以看到我们如何将内容传递到角度补偿中。此外,我们可以在index.html中包含剃刀语法,以便将内容从mvc传递到angular。

在入口角度组件内部,我们解析了我们需要使用的内容

  constructor(private elemRef: ElementRef) {

this.id= this.elemRef.nativeElement.getAttribute('id');
this.otherId= this.elemRef.nativeElement.getAttribute('otherId');
 }

因此,角度应用程序是单独创建的,然后作为剃刀视图包含在我们的mvc应用程序中。从那里你可以传递你想要的任何角度。并包含链接。而且由于它是一个剃刀视图,它位于mvc应用程序的主要布局中。所以整个现有的mvc应用程序的链接工作。但是,如果您需要角度组件内部的链接,生成和角度组件显示,那么您可能必须通过它们。

此外,为了让剃刀识别.html文件并像cshtml一样解析它们,你可以注册一个视图引擎来处理像cshtml这样的html。它的东西就像

 System.Web.Razor.RazorCodeLanguage.Languages.Add("html", new System.Web.Razor.CSharpRazorCodeLanguage());
 ViewEngines.Engines.Add(new HtmlViewEngine());   

当应用程序启动然后

 class HtmlViewEngine : RazorViewEngine
{
    public HtmlViewEngine()
    {
        FileExtensions = new[] { "html" };

    }
}

可能还有更多内容,但基本上你需要制作像.cshtml这样的.html文件进程,你可以通过关联处理.cshtml与.html的razor引擎来实现。或者,在角度开发中,您只需为index.html index.cshtml命名即可。但是,当然这种混乱你的角度应用程序。

我希望这对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.