UrlProperty和相对URL

时间:2010-08-04 21:22:51

标签: asp.net url-rewriting user-controls hyperlink

我有一个自定义UserControl(继承System.Web.UI.UserControl),该属性应该设置为您要链接到的网站上的URL:

 [DefaultValue("~/NewsItem.aspx"), UrlProperty("*.aspx")]
 public string InternalItemViewUrl
 {
  get { return _internalItemViewUrl; }
  set { _internalItemViewUrl = value; }
 }

控件将正确显示URL选择器下拉列表,但如果从列表中选择一个URL,则不会将其更改为与站点相关的“〜/ foo.aspx”链接,如HyperLink所做的那样,而是只得到“foo.aspx”不起作用(控件在/ controls中,页面显然不是)。如果您完全向下滚动并使用“选择URL ...”打开完整的弹出窗口,则在该对话框中选择的页面将转换为“〜/ foo.aspx”

我是否遗漏了一些显而易见的东西来使这项工作?

2 个答案:

答案 0 :(得分:0)

查看HyperLink上的属性,尤其是[Editor]属性。

[DefaultValue(""),
 WebSysDescription("HyperLink_NavigateUrl"),
 UrlProperty, Bindable(true), WebCategory("Navigation"), 
 Editor("System.Web.UI.Design.UrlEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]

答案 1 :(得分:0)

控件的位置无关紧要,url是相对于控件放置的页面 因此,如果控件放在页面“foo.aspx”上并且它引用了一个页面“foo2.aspx”(与“foo.aspx”在同一目录中),那么只需在控件的url中输入“foo2.aspx”财产将有效。