繁体   English   中英

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

[英]how to navigate to asp.net web form from angular 4 page in same project

我需要同时保持角度4页和asp。 NET Web窗体在一个项目中,因为Web需要从asp.net转换为有角度的,并且这不可能一次完成,所以我需要同时保持页面和功能正常。

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

任何帮助将不胜感激

我们能够在MVC应用中交付angular 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生成命令的输出,所有ng build命令的工件都被复制到目录中,因此angular应用程序可以在mvc内运行。 您还可以看到我们如何将内容传递到我们的角度补偿中。 另外,我们可以在index.html中包含razor语法,以将内容从mvc传递到angular。

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

  constructor(private elemRef: ElementRef) {

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

因此,Angular应用是单独创建的,然后作为剃刀视图包含在我们的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" };

    }
}

可能还有更多,但是基本上您需要使.html文件像.cshtml一样进行处理,并且可以通过将处理.cshtml的剃刀引擎与.html关联来实现。 另外,在角度开发中,您可以仅命名index.html index.cshtml。 但是,当然,这种方式会影响您的角度应用程序。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM