簡體   English   中英

使用Asp.Net MVC在javascript中刪除硬編碼字符串的最佳方法

[英]Best way to remove hardcoded string in javascript with Asp.Net MVC

在我的javascript文件中,我有太多引用控制器操作的hardcorded url。 有時,我也會直接從我的javascript中顯示消息。

從javascript文件中刪除所有這些硬編碼字符串的最佳方法是什么?

  1. 第一步 ,使用T4MVC自動生成一組結構化的.NET類,用於描述ASP.NET MVC的應用程序結構

  2. 第二步 ,創建一個新的局部視圖,將T4MVC描述的服務器端信息定義為一組Javascript常量。

     <script type="text/javascript"> var SHOPPING_CART_DETAIL_URL = '@Url.Action(MVC.ShoppingCart.Detail(Model.ShoppingCartId))'; var CLIENT_DETAIL_URL = '@Url.Action(MVC.Client.Detail(Model.ClientId))'; var USER_IS_ADMIN = @(User.IsInRole(Roles.Admin) ? "true" : "false"); </script> 
  3. 第三步 ,將這個局部視圖包含在您需要的任何頁面的頭部。 您還可以將其包含在常規頁面布局的頭部。 確保在其余JavaScript文件之前加載。

  4. 第四步 ,在整個JavaScript文件中使用新定義的JavaScript常量。

為此,我使用T4MVC 它允許您使用強類型對象代替文字字符串。 您需要在視圖中初始化您的javascript,但除此之外它的效果很好。

對於消息等,這里有一些想法: 多語言javascript應用程序的不同方法是什么

如果您想避免使用T4MVC,您可以創建一個解析JS文件的Controller。 只需在Global.asax中配置一個捕獲所有javascript url的路由,該操作將准備好JS文件,解析它,返回帶有URL的結果。

        routes.MapRoute(
            "Javascript",
            "{url}.js",
            new { controller = "Javascript", action = "Parse" }
        );

然后編寫一個讀取請求的URL的動作,找到JS文件,根據鍵/值字典替換值。 如果需要,可能甚至將Key / Value詞典外化。 剩下的由你決定。

另一種選擇是使用返回Javascript代碼的控制器操作。 該javascript代碼將是填充了MVC生成的URL的變量列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM