簡體   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