【发布时间】:2015-01-15 21:43:19
【问题描述】:
我遇到了一个非常奇怪的问题。我的一些 Web 用户控件导致引用它的父页面出现 404 page not found 错误。
这是我在 .aspx 页面上注册它的方法:
<%@ Register TagPrefix="uc" TagName="DonationList"
Src="~/Controls/Donation/DonationList.ascx" %>
以及在同一个aspx页面上声明用户控件的那一行:
<uc:DonationList ID="seenDonationListUC" runat="server" SeenInformation="Seen" />
如果我删除上述行,我不会再收到 404 错误页面。
这是一个用户控件类的小sn-p:
public partial class DonationList : System.Web.UI.UserControl
{
public enum Seen
{
Unspecified = 0,
Seen = 1,
NotSeen = 2
}
public Seen SeenInformation
{
get
{
int temp = seenInformationHF.Value == "" ? 0 : Convert.ToInt32(seenInformationHF.Value);
result = (Seen) temp;
return result;
}
.....
你知道这可能的原因吗?
【问题讨论】:
-
你确定src属性是对的?
-
@Abbath 是的,非常肯定。逐个字母逐个检查。
-
那么我唯一能想到的就是用户控件发生了一些错误,这可能导致重定向到错误页面。您可以尝试将
SeenInformation="Seen"替换为SeenInformation="0",并将public Seen SeenInformation的类型替换为int 吗? -
@Abbath 是的,这解决了问题。谢谢。我在 Page_Load 上放了一个断点以确保它成功,但我认为问题不会出在 SeenInformation 上。现在这很奇怪。它一直工作到现在。 IntelliSense 甚至为我提供了枚举选项。我猜 aspx 页面在运行时找不到枚举的正确引用。
-
在您的
SeenInformationSetter 中,确保将其设置为数字字符串值,因为如果此Convert.ToInt32(seenInformationHF.Value);无法解析字符串,则会崩溃
标签: c# asp.net webforms webusercontrol