1

我正在構建一個複雜的工作應用程序。我希望它成爲一個SPA。我正在使用AngularJS和Asp.net MVC(不是web API)。一切工作到目前爲止,但我意識到我不能再利用ASP.NET MVC提供的許多功能。到目前爲止,我知道我必須爲這些功能編寫我自己的代碼:AngularJS vs ASP.NET MVC中的多個表單

  1. 所有驗證必須位於客戶端。我無法重用我在C#中編寫的一些屬性。

  2. [ValidateAntiForgeryToken]屬性不再有效。

  3. 我不能直接使用實體框架生成的類。它會給出「循環引用」錯誤。

我幾乎很後悔採取這種方法。有雙向綁定是很好的,但是我必須編寫很多額外的代碼,如果我不使用angularJS,我可以避免這些代碼。我可以在一個頁面中寫入多個表單,並獲得如下所示的相同結果:

Multiple Forms in same page ASP.net MVC

你能告訴我還有什麼其他的MVC功能需要編寫代碼嗎?什麼時候應該使用angularJS,什麼時候應該在同一頁上使用ASP.NET多個表單?

感謝

+0

如果你正在使用Angular,你應該使用WebAPI來簡單地返回你需要的數據(用JSON),然後讓視圖模板呈現視圖。由於您正在使用MVC來照顧渲染視圖,因此您正在擊敗Angular的許多優點。如果你想做MVC並且有雙向數據綁定,那麼我會在客戶端使用Knockout而不是Angular。 –

+0

如果我沒有記錯,Knockout也不能與[ValidateAntiForgeryToken]一起使用。你必須提交表單才能使其工作。 – MsBugKiller

回答

1

可以緩解列出的那些點的疼痛,不過,它可能會更好,以決定什麼是從一開始就爲您做得更好 - 渲染視圖客戶端(角度)或服務器端(MVC )。

無論如何,已知的一些列出的問題的解決方案。對於MVC驗證角指令屬性: https://github.com/alisabzevari/ngval

有關[ValidationAntiForgeryToken]這裏也是一個解決方案:https://julianjelfs.wordpress.com/category/mvc/

我沒有理解關於多種形式(我相信這是無關角)的事情,所以跳過上這..