2016-12-08 151 views
1

任何有關將.Net MVC 5項目移植到Angular 2的方法的建議。這是一個很大的項目,我們不能等待完整的轉換。當我們可以一次遷移幾頁並且仍然繼續使用舊項目時,我們正在尋求一種平行移動。將MVC 5項目移植到Angular 2

我看到了有關如何在MVC 5中使用Angular 2的解決方案,但我們不想在這裏合併關注點,因爲我們在使用另一個javascript框架時遇到了一些問題。

您的幫助表示讚賞。

回答

2

一段時間,你的一些路由將由asp.net mvc serverside處理,而一些路由將由ng2 app clientside處理。

首先,想象一下當轉換完成後,您的應用程序將會是什麼樣子:您將擁有一個可以啓動您的應用程序的razor cshtml視圖。繼續前進,現在創建這個視圖,稱之爲「ngappview.cshtml」。它會是這個樣子:

<!DOCTYPE html> 
 

 
<html> 
 
<head> 
 
    <base href="/"> 
 
    <link href='~/assets/styles.bundle.min.css?v=5359476866832222' rel="stylesheet"> 
 

 
</head> 
 
<body> 
 
    <app> 
 
     loading... 
 
    </app> 
 
    <script type='text/javascript' src='~/assets/main.bundle.min.js?v=5359476866832222'></script> 
 

 
</body> 
 
</html>

現在,服務器端,每次一個特定的頁面轉換爲NG2應用視圖,只是充當了你的ngappview.cshtml視圖。這裏將是你的MVC控制器:

[Route("someRouteConvertedToNg2")] 
 
public class SomeController: Controller { 
 

 
    public ActionResult ThisIsNowNg2Function() { 
 

 
    return View("~/Views/ngappview.cshtml"); 
 
    } 
 

 

 
}

而且在客戶端上,當你的NG2的應用程序需要調用仍被asp.net的MVC管理服務器端的路由,你將有必須強制回傳到該特定路線。請記住,每回發一次,您將失去您在ng2應用程序中維護的任何狀態;和ng2應用程序將重新加載每ng2視圖(可能很煩人)。一段時間會有點混亂,但最終它會自行排除。

同時,這裏是關於如何最好的(在我看來)設置與asp.net的MVC的NG2項目相關的帖子:https://stackoverflow.com/a/40234393/3532945

+0

謝謝白蘭度。這非常合理,我們正在積極尋找這個選項。如果我們發現處理此問題的任何問題,我會回覆。 – Raj