私の JavaScript ファイルには、コントローラーのアクションを参照するハードコードされた URL が多すぎます。時々、JavaScript から直接メッセージが表示されることもあります。
これらのハードコードされたすべての文字列を JavaScript ファイルから削除する最良の方法は何ですか?
私の JavaScript ファイルには、コントローラーのアクションを参照するハードコードされた URL が多すぎます。時々、JavaScript から直接メッセージが表示されることもあります。
これらのハードコードされたすべての文字列を JavaScript ファイルから削除する最良の方法は何ですか?
ステップ 1では、 T4MVCを使用して、ASP.NET MVC のアプリケーション構造を記述する .NET クラスの構造化セットを自動的に生成します。
ステップ 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 の使用を避けたい場合は、JS ファイルを解析するコントローラーを作成できます。すべての JavaScript URL をキャッチする Global.asax のルートを構成するだけで、そのアクションによって JS ファイルが準備され、解析され、URL とともに結果が返されます。
routes.MapRoute(
"Javascript",
"{url}.js",
new { controller = "Javascript", action = "Parse" }
);
次に、要求された URL を読み取り、JS ファイルを見つけ、キー/値辞書に基づいて値を置き換えるアクションを記述します。必要に応じて、その Key/Value ディクショナリを外部化することもできます。後は君しだい。
もう 1 つのオプションは、JavaScript コードを返すコントローラー アクションを使用することです。その JavaScript コードは、MVC で生成された URL で満たされた変数のリストになります。
そのためにT4MVCを使用します。リテラル文字列の代わりに厳密に型指定されたオブジェクトを使用できるようになります。ビューで JavaScript を初期化する必要がありますが、それ以外はうまく機能します。
メッセージなどについては、いくつかのアイデアがあります。多言語 JavaScript アプリケーションへのさまざまなアプローチは何ですか