![](/img/trans.png)
[英]The best way to deal with dates in a ASP.NET MVC - Javascript application
[英]Best way to remove hardcoded string in javascript with Asp.Net MVC
在我的javascript文件中,我有太多引用控制器操作的hardcorded url。 有時,我也會直接從我的javascript中顯示消息。
從javascript文件中刪除所有這些硬編碼字符串的最佳方法是什么?
第一步 ,使用T4MVC自動生成一組結構化的.NET類,用於描述ASP.NET MVC的應用程序結構
第二步 ,創建一個新的局部視圖,將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 。 它允許您使用強類型對象代替文字字符串。 您需要在視圖中初始化您的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.