我們使用DNN,並且經常需要傳遞一些特定於上下文的值(如頁面id或模塊在頁面id)到AngularJS應用程序中。我們已經制定了自己的慣例如何做到這一點,但希望聽到別人如何處理這個問題以找到最佳做法。將服務器(c#/ Razor)值傳遞到AngularJS應用程序的最佳方法
所以基本上情況是服務器頁面有JS需要的信息。使用WebAPI不是一種選擇,因爲這些值在頁面中是已知的,但不是在單獨的請求中。我見過的東西至今已:
- 使用的視圖剃刀一樣
href="@Tab.TabId/{{...}}"
(我不喜歡這個) - 地方像
ng-init="config = { prop1: '@Tab.TabId' }"
- 在NG-初始化值創建單獨
<script>
標籤,我們在哪裏生成包含這些值的實時模塊angular.module("config", []).constant('prop1', '@Tab.TabId')
- 在頁面某處使用剃鬚刀創建json,並使用與#3相同的通用代碼將其作爲模塊注入應用程序,只需更簡潔的代碼重用。
我已經看過所有這些,也使用了所有。目前我們避免#1,因爲我們認爲混合模板語言並不好,因爲它不允許部分視圖的外部化。所以基本上我們使用#2作爲快速和簡單(並且有點髒)+#3 /#4爲更大的項目。
你有更好的方法,或者你更喜歡哪種方式?
這對描述的url編碼問題沒有任何影響 – iJungleBoy