2011-07-06 9 views
5

私はcss/jsページを作成していますが、そこには動的な部分があります。 これを行うには、私はcss/jsを含むcshtmlファイルを使用しています - mvc.netを使用していて、コントローラアクションからcssを返しています。ビジュアルスタジオにcshtmlファイルをjavascriptとして認識させる方法

Visual Studioは、このページをjavascript/cssとして認識せず、javascript/cssの色付けとIntelliSenseを提供していません。

私の質問:

  1. .NET
  2. に動的なCSS/JSを作成するためのより良い/簡単な方法がありますがどのように私はjavascriptのようCSHTMLページを認識するためのVisual Studioを得ることができます。

答えて

0

最善の解決策は、控えめなJavaScriptと控えめなスタイリングに従うと.jsファイルにあなたのジャバスクリプトを入れて、.cssファイルにあなたのCSSを入れて<script><link>タグを使用してCSHTMLファイルにマークアップでそれらを参照することです。

<script src="Scripts/scriptName.js" type="text/javascript"></script> 
<link rel="stylesheet" href="Content/styleSheetname.css" type="text/css" /> 

これは、コンテンツ(マークアップ)とスタイリング/ビヘイビアを別々に保つのに適しています。

+0

これは、デフォルト – vittore

+0

@vittoreで有効になっていないの.jsや.cssのためのかみそりを有効にするようになります - どのように私はJSのためにかみそりを有効にすることができますか?それはまさに私が探していたものでした。 @stuperUser - 静的なjsファイルを必要としないように、さまざまなシナリオで小さな変更があるので、私は動的にjsを作成します。 – Daniel

+0

@Danielでは、スクリプトでフラグ/パラメータとして使用されるマークアップにデータを追加して、動的コードをテストする必要がある場合は実行する方法を決めることができます。 – StuperUser

0

<script>タグと<style>タグをページに入れてダイナミックなjs/cssタグを置くのは間違っていますが、動的であればキャッシュする方法がありません。 あなたは以下のようなものを書くことができます。

<script> 
function [email protected](params)(obj) { return obj.field + @MyOtherFunc(params); } 
<script> 

とかみそりエンジンは、あなたがRazorJS nugetパッケージを試みることができるJavaScript対応ブラウザ

+0

これは、ビヘイビアをマークアップと混合し、javascriptの単体テスト性を破ります。 – StuperUser

+0

@StuperUser:topicスターターは動的なjsを要求しました。デフォルトではimhoがこれを行うのです – vittore

+0

動的ですが、少数のシナリオ(現在はおそらくもっと将来はおそらく2)でキャッシュされます。 – Daniel

0

に送信する前に、@MyFunc(のparams)と@MyOtherFunc(のparams)を評価します。しかし、我々はそれを使用している間、いくつかの不一致に遭遇しました。

コントローラ/ビューを使用してこれを行うさらに良い方法を見つけようとしているにもかかわらず、インテリセンスを使用して適切な色付けを行うことができます。

1

私はちょうど自分自身.cshtmlファイルに私のJavaScriptファイルの周りのスクリプトタグを入れた何をしたか、これは古い記事です知っている...しかし...

。 別のコントローラー(JavascriptController.cs)を作成しました。そのコントローラーにスクリプトタグを削除するフィルターを作成しました。 OnActionExecutingメソッドでフィルタを設定しました。ちょうどあなたが構文を取得

this.Response.Filter = new ScriptFilter(Response.Filter, Response.ContentEncoding); 

をすることによって、あなたはRazorJSを使用せずにかみそりを取得し、あなたは、MVCアプリケーションの正規ルートのようなJSファイルを要求することができます。編集中は、スクリプトタグをパーシャルビューに保持するだけです。

だから、

/Javascriptを/ {アクション}

を呼び出すことができますし、あなたはそれであなたのかみそりであなたのjavascriptファイルを取得します、とのようにあなたがそれを含めることができるようにフィルタがスクリプトタグを削除します通常のスクリプトです。

<script src="http://{host}/Javascript/{action}"></script> 
+0

良いアプローチ:このブログ記事は、より詳細に説明されていますが、コメント欄にいくつかのバグがあります。 https://blog.mariusschulz.com/2013/07/07/generating-external-javascript-files-using-partial-razor-views?cachebreaker=635670317115705127#comment-20970 –