在我的javascript文件中,我有太多引用控制器操作的hardcorded url。有時,我也有消息直接從我的JavaScript顯示。用Asp.Net去除javascript中的硬編碼字符串的最佳方法MVC
什麼是從JavaScript文件中刪除所有這些硬編碼字符串的最佳方法?
在我的javascript文件中,我有太多引用控制器操作的hardcorded url。有時,我也有消息直接從我的JavaScript顯示。用Asp.Net去除javascript中的硬編碼字符串的最佳方法MVC
什麼是從JavaScript文件中刪除所有這些硬編碼字符串的最佳方法?
爲此,我使用T4MVC。它將允許您使用強類型對象代替文字字符串。您需要在您的視圖中初始化您的JavaScript,但除此之外它效果很好。
對於消息等。這裏有一些想法:what are the different approaches to multilingual javascript applications
步驟一,使用T4MVC自動生成一套結構化描述你的ASP.NET MVC的應用程序.NET類的 結構
第二步,創建一個新的局部視圖,由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>
步驟三,包括 你需要它在任何網頁的頭部這個局部視圖。您也可以將其包含在您的常規 頁面佈局的頭部。確保在之前加載其餘的JavaScript文件。
第四步,在您的JavaScript文件中使用新定義的JavaScript常量。
如果你想避免使用T4MVC,你可以製作一個解析JS文件的控制器。只需在Global.asax中配置一個捕獲所有javascript url的路由,並且該操作將準備好JS文件,解析它,並返回帶有URL的結果。
routes.MapRoute(
"Javascript",
"{url}.js",
new { controller = "Javascript", action = "Parse" }
);
然後編寫一個操作,讀取請求的URL,找到JS文件,並根據鍵/值詞典替換值。如果可能需要的話,甚至可以將該鍵/值詞典外化。其餘的由你決定。
另一種選擇是使用返回Javascript代碼的控制器操作。該JavaScript代碼將是一個由MVC生成的URL填充的變量列表。