私の最善の努力にもかかわらず、私は自分の雇用主から、便利なものの代わりにSharepointを使用してWebアプリケーションを開発することを任されました。ビジュアルWebパーツ内でネストされたユーザーコントロールが使用されない
Visual Studio 2010のSharepointプロジェクトでユーザーコントロールをビジュアルWebパーツに埋め込む際に問題があります。次の手順を使用しています。このコードは、実際のコードとしての概要です現在、私はStackOverflowから禁止されています):
新しい空のSharepointプロジェクトを作成します。
MyControl.ascx
MyControl.ascxという名前の、(ControlTemplatesにある)プロジェクトにユーザーコントロールを追加します。
<asp:TextBox runat="server" ID="txtStuff" />
MyControl.ascx.cs:
public class MyControl : UserControl
{
public int Property { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
txtStuff.Text = "I hate you sharepoint";
}
}
- ビジュアルWebパーツをプロジェクト、MyWebPart.ascx
MyWebPart.ascx
<%@ Register TagPrefix="c" TagName="MyControl" src="~/_controlTemplates/MyControl" %>
<c:MyControl runat="server" ID="mycontrol" />
私はこのポイントを取得する場合、私はおそらくよりは、VSが存在を知られていないため、MyControlとするために任意のインテリセンスを得ることはありません.ascxファイルの私はまた、それが存在しないことを私に知らせる制御名の下に緑の波線を得る。しかし、私はまだSharepointサーバーにプロジェクトを展開することができ、すべて正常に動作します。
MyWebPart.ascx.csたSystem.Web.UI「のエラーが生成さ
protected void Page_Load(object sender, EventArgs e) {
mycontrol.Property = 1234;
}
:私はコントロール自体との相互作用に有用何もする必要がある場合
しかし、これは崩壊してしまいます。 UserControlには、 'Property'の定義と拡張メソッド... 'が含まれていません。designer.csファイルは実際にコントロールをUserControlとして指定し、その実タイプは指定しません。
これでビルドエラーが発生するため、私はSharepointサービスにプロジェクトを展開できませんr、私は本当にこのintellisenseの問題を回避することはできません。
これは非常に矛盾した動作であることがわかりました。プロジェクトが現在サーバーに展開されているかどうかに応じて、インテリセンスが表示されることがあります。しかし、開発環境を稼働状態にするために私が取ることができた予測可能なステップはありません。
どのような考えですか?私が試した事があります:
WebパーツのASCXを右クリックして "Open With ..."をクリックし、 "With Encoding"オプションを選択してください。無効。
アプリケーションのデプロイメントとリトラクトの両方で開発し、.ascxファイル、ソリューション、およびVisual Studio自体のクローズと再オープンのさまざまな組み合わせを使用します。時には作品は、時にはしません。
プロジェクトの「デバッグ後の自動退避」オプション(ナレッジベース記事から推奨)を無効にしました。無効。
解決策はありますか?私は同じページにこだわっています。 –