C# 导致找不到页面的Web用户控件

C# 导致找不到页面的Web用户控件,c#,asp.net,webforms,webusercontrol,C#,Asp.net,Webforms,Webusercontrol,我遇到了一个很奇怪的问题。我的一些Web用户控件导致引用它的父页面出现404 page not found错误 以下是我在.aspx页面上注册它的方式: <%@ Register TagPrefix="uc" TagName="DonationList" Src="~/Controls/Donation/DonationList.ascx" %> <uc:DonationList ID="seenDonationListUC" runat="server" SeenInfor

我遇到了一个很奇怪的问题。我的一些Web用户控件导致引用它的父页面出现404 page not found错误

以下是我在.aspx页面上注册它的方式:

<%@ Register TagPrefix="uc" TagName="DonationList"
Src="~/Controls/Donation/DonationList.ascx" %>
<uc:DonationList ID="seenDonationListUC" runat="server" SeenInformation="Seen" />

您知道可能的原因吗?

您的枚举名和后续的枚举值都是相同的“已看到”。尝试将枚举名称更改为SeenOptions之类的名称。比如说,

public enum SeenOptions
{
    Unspecified = 0,
    Seen = 1,
    NotSeen = 2
}
在这种情况下,您的SeenInformation类将如下所示:

public SeenOptions SeenInformation
{
    get
    {
        int temp = seenInformationHF.Value == "" ? 0 : Convert.ToInt32(seenInformationHF.Value);
        result = (Seen) temp;
    }
    .....
最后,aspx页面上的用户控制行将与以前相同

<uc:DonationList ID="seenDonationListUC" runat="server" SeenInformation="Seen" />


我希望这能解决您的问题。

您确定src属性是正确的吗?@Abbath是的,非常确定。逐字逐案检查。然后我唯一能想到的是usercontrol上发生了一些错误,这可能导致重定向到错误页面。您能否尝试将
seeninfo=“Seen”
替换为
seeninfo=“0”
,并将
public seeninfo
的类型替换为int?@Abbath是的,解决了问题。谢谢我在页面加载上放置了一个断点,以确保它命中,但我认为问题不会出现在seeninfo上。这很奇怪。到目前为止,它一直在发挥作用。IntelliSense甚至为我提供了枚举选项。我猜aspx页面在运行时找不到枚举的正确引用。在
SeenInformation
Setter中,确保将其设置为数字字符串值,因为该
Convert.ToInt32(seenInformationHF.value)将失败。实际上,这不是问题所在。但是,将这段旧代码重命名为您的命名约定是一个绝妙的想法。问题是,我实际上在另一个名为CommonReference的类中声明了枚举。类似于,public CommonReference.SeenOptions SeenInformation{..}但这一直都是有效的。尽管问题是以一种方式解决的,无论如何。
<uc:DonationList ID="seenDonationListUC" runat="server" SeenInformation="Seen" />