2011-03-01 17 views
2

私はカップルの異なる方法でこれを試してみた:ユーザコントロールのビューモデルにアクセスできないのはなぜですか?

<%@ Import Namespace="MyNameSpace.MyModel" %> 

しかし、関係なく、私は何をすべきか、私はthis.Modelへのアクセスを持っていません。

1:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNameSpace.MyModel>" %> 

2または私が見たいと思う何か。プロジェクトの他のコントロールやページはこれらにアクセスすることができ、開発者の誰も自分のことができない理由を教えてくれません。何か案は?

EDIT

私はそれ以来、いくつかのコントロールとページを作成しました。場合によっては、intellisenseは問題なしでthis.Modelを見つけます。それはまた、Html.RenderPartial()のようなものやそれが見つかるはずのさまざまなものを見つける。インテリセンスが視野に入っていないと私に言ってくれるあなたのために、あなたは間違っています。します。しかし、それはすべての意見の間で一貫していません。私と他の開発者が分かる限り、私は何か違うことはしていません。私が試したもの:

  • は、溶液中に
  • 削除ポストを閉じたフォルダ
  • を構築するソリューションを再度開き
  • は、時々、これらの手順で問題を解決

どちらか定期的または分析、ビルド、リビルドしかし、いくつかのコントロールでは、私はちょうど赤いsquiggleyラインを消えることはできません!ランタイムエラーは発生しないので、これは世界の終わりではありませんが、ここで何が起こっているのか理解したいと思います。確かに誰かがこれを体験し、問題の原因を学んだ。

+1

最初の定義が正しいです。あなたはどのようにビューモデルを渡していますか?あなたがそれにアクセスできないということは何を意味しますか?エラーメッセージなどが表示されますか?少し説明してください。 –

+6

あなたは1の角かっこがありません。最後に 'MyModel'の後に'> 'を付けるべきです。それがタイプミスかどうかはわかりません。 –

+2

インポートされた名前空間の名前は、「継承」宣言の汎用モデルクラスとまったく同じです。インポートは「MyNameSpace」にする必要があります。 –

答えて

3

また、web.configファイルにそれを追加してみてくださいすることができます

<namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="MyHtmlHelperLibrary.HtmlExtensions"/> 
    <add namespace="MyOtherNamespace"/> 
    </namespaces> 
+0

製品は、PlatformのWeb.configにアクセスできない。しかし、提案をありがとう。 – Samo

+0

@Samo - ?あなたのコメントは意味をなさない? web.configファイルに物理的にアクセスできないと言っていますか? – Rob

+0

はい。私の製品は、複数の製品のプラットフォームとして機能するソリューション上に構築されています。製品は、プラットフォームソリューションのコードに触れることはできません。 – Samo

関連する問題