[英]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.