2011-08-19 16 views
10

Infragisticsのコントロールライブラリリファレンスを追加して、ASP .NET MVC 3 Razorビューでコントロールを使用します。私は既にプロジェクトの参照としてdllを追加しました。ASP.NET MVCでビューへの参照を追加する

reference
reference properties

私は、ファイルの先頭にusing Infragistics.Web.Mvcを追加する場合、私のコントローラは、名前空間の罰金にアクセスすることができます。

ビューに名前空間を含めるように指示する方法は2つあります。最初は@using Infragistics.Web.Mvcをビューの一番上に置くことです。しかし、私がいることをしようとした場合、私は次のエラーを取得する:

The type or namespace name 'Infragistics' could not be found (are you missing a using directive or an assembly reference?)

第二は、このようなビューのWeb.configのページの一部に名前空間への呼び出しを追加することです:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ABCABCABCABCABC" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     Other namespaces... 
     <add namespace="Infragistics.Web.Mvc"/> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 

しかし、これはどちらもうまくいかない。

私は仕事にそれを得ることができる唯一の方法は、ルートのWeb.configファイルに次の行を追加しました:

<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     ... 
     <add assembly="Infragistics.Web.Mvc, Version=3.11.1.2010, Culture=neutral, PublicKeyToken=blahblahblah" /> 
     </assemblies> 
    </compilation> 

On some further investigation regarding Web.config、私はそのラインを含むことで、それはそれを使用するようにコンパイラに指示しますことを発見ASP .NETリソースをコンパイルするときのリソース。私はPublicKeyTokenを見つけるためにSN.exeを使用しなければなりませんでした。

私は間違っていますか?

+0

のですか? – jzm

+0

はい、それは私が "既にプロジェクトの参照としてdllを追加しました"という行の意味です。 – link664

答えて

21

を役に立てば幸いプロジェクト。あまりにも多くのオプションを調べる前に確認する価値があります。ここで

は、Visual Studioのプロジェクトに参照を追加しました例

enter image description here

+1

それでした! Copy Localをtrueに設定してコンパイルタグを削除し、それが機能しました。 :D – link664

+0

私のために働きました:-) –

+0

私にも働きました。しかし、使用可能なコントロールの特定のリストしか取得できません。 WebDropDownコントロールの使い方はどうですか? – Shumii

1

残念ながら、ここでは何か変わったことがあります。単にrefを追加して名前空間を追加するだけで十分です。

私のアプリケーションでは、web.configのアセンブリ要素にはエントリがなく、@使用しているだけです(MVCグリッドの場合はMvcContrib.UI.Gridを使用)。すべて正常に動作します。私はそれが問題を解決するのにあまり役に立たないと知っていますが、少なくとも、これはこのように動作するはずです。

また、使用するステートメントの後にセミコロンは必要ありません。 その場所にあなたが追加した参照をそのアセンブリに追加したとき?あなたのコードを見てみると

+1

ローカルマシンのProgram Files内のフォルダから追加しました。 – link664

4

あなたはweb.configファイルに次のように入れているようだしない:

<pages> 
    <namespaces> 
    <add namespace="System.Web.Helpers" /> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="System.Web.WebPages" /> 

    ... 

    <add namespace="Infragistics.Web.Mvc" /> 
    </namespaces> 
</pages> 

これは、拡張機能としても、インフラジスティックスのdllを使用するようにviewengine(かみそり等)を教えてください。

Razorを使用している場合は、View \ web.config内の "namespace"タグも参照してください。必要に応じて名前空間を指定することができます。

はそれが私はインフラジスティックスのインストールが動作するか、どのようにあなたのウェブサイトを実行しているかどうかはわかりませんが、それがウェブに含まれていますので、あなたがビルドでDLLをコピーするにはVisual Studioのを伝える必要があるかもしれません

+0

ビューファイルで "@using Infragistics.Web.Mvc"を使用する場合、Web.configに名前空間呼び出しを含める必要はありません。名前空間を配置すると、すべてのビューで使用できるようになります。しかし、私のケースでは、アセンブリの呼び出しがなければ、名前空間を入れたり、 "@使用"することはできません。 – link664

+0

また、これは、おそらく、壊れたインストールのinfragistcsで動作しないのですか? – Iridio

関連する問題