0

最近、別のベンダーのプロジェクトを継承し、それを使用可能なVisualStudio2010ソリューションに変えようとしています。

私が現在遭遇しているエラーは次のとおりです。

このコードファイルで定義されているクラスが「inherits」属性と一致していること、および正しい基本クラス(PageやUserControlなど)を拡張していることを確認してください。

私はこの質問が他のいくつかの機会に提起されていることを発見しましたが、この場合、どの解決策も機能していないようです。以下は問題のコードです:

〜/ layouts / Header.ascx.cs

using System;
using Client._Classes.Global;
using Client._Classes.Helpers;
using Client._Classes.Utilities;

namespace Layouts.layouts_Header
{

    public partial class layouts_Header : BaseControl
    {
        private void Page_Load(object sender, EventArgs e)
        {

        }

        protected void lnkSignIn_OnClick(object sender, EventArgs e)
        {
            Session["CurrentPageURL"] = Sitecore.Context.RawUrl;
            Response.Redirect("/en/Community/Register.aspx");
        }

        protected void btnSearchSubmit_OnClick(object sender, EventArgs e)
        {
            string redirectURL = "/en/Search%20Results.aspx?cx=005917832522243245879:kpcudcaotoo&cof=FORID:11&ie=UTF-8&q=" + txtSearchQueryStr.Text;

            Response.Redirect(redirectURL);
        }

    }

}

〜/ layouts / Header.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="~/layouts/Header.ascx.cs" Inherits="Layouts.layouts_Header.layouts_Header" %>

BaseControl.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Globalization;

using Sitecore.Data.Items;
using Sitecore.Diagnostics;
using Sitecore.Web;
using Sitecore.SharedSource.Data.Comparers.ItemComparers;
using Sitecore.Data.Fields;
using Sitecore.SharedSource.Searcher;
using Sitecore.SharedSource.Searcher.Parameters;
using Sitecore.SharedSource.Searcher.Utilities;
using Sitecore.Collections;

using Client._Classes.Utilities;
using Client._Classes.Helpers;
using Client._Classes.Global;

namespace Client._Classes.Global
{
    public class BaseControl : System.Web.UI.UserControl
    {
        ...
    }
}

他のいくつかの.ascxコントロールもBaseControlから継承しており、問題はないように見えることに注意してください。

4

2 に答える 2

0

問題は、名前空間名がクラス名で終わっていることだと思います。

namespace Layouts.layouts_Header
{
    public partial class layouts_Header // * snip *

layouts_Header名前空間からパーツを削除してから、Inherits属性の値を次のように変更してみてくださいLayouts.layouts_Header

于 2013-02-21T09:05:45.257 に答える
0

私に提供されたソリューションには、次のようなフォルダ構造が含まれているようです。

/ temp / installation_history / 681FBB6D58774C7D96B37D1353B7441E / layouts

これには、Header.ascxとHeader.ascx.csのコピーが含まれていました。プロジェクトからHeader.ascxとHeader.ascx.csから実際のコピーを除外したときに、これらのファイルを発見しました。

tempフォルダーとそのすべてのコンテンツを削除すると、ソリューションがコンパイルされました。アドバイスをありがとうございました。

于 2013-02-21T14:28:18.440 に答える