我已成功在Umbraco仪表板中创建并集成了成功的用户控件。该页面以搜索控件开头,该控件返回可编辑项目列表。
在我的用户控件中,我在指导编辑页面的链接时遇到问题。我正试图直接链接到它。这是代码:
<asp:hyperlinkfield
datanavigateurlformatstring="/usercontrols/useradmin/item_edit.aspx?itemID={0}"
datanavigateurlfields="itemID" Text="edit" />
Umbraco无法处理直接链接,我不知道如何找到它。相反,它会返回此错误:
没有umbraco文档与网址匹配 'http://localhost:1169/usercontrols/useradmin/item_edit.aspx?itemID=f66c8f06-9e0e-4f3c-ac0d-5544e0998094'umbraco尝试使用它来匹配它 这个xpath查询'/ root / node / node [@urlName =“usercontrols”] / node [@urlName =“useradmin”] / node [@urlName =“item_edit”]')
有没有办法在自定义信息中心控件中从一个用户控件链接到另一个用户控件?
答案 0 :(得分:1)
回发选项
不是尝试在页面之间进行链接,为什么不使用回发来完成现有用户控件中的所有工作呢?
即。用户控件中的这种方法
public void Handle_Click(object sender, System.Event args)
{
//Do Something
}
这将正常工作,因为umbraco不会尝试解释URL,因为它停留在同一页面上。
答案 1 :(得分:1)
链接到页面选项
要启用链接到另一个页面,您需要在web.config文件中添加一个条目,告诉umbraco忽略该路径(因此它不会尝试解释该URL)。
只需将您的路径添加到以下appSetting:
<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" />
然后链接将在仪表板控件中工作,但是它将链接到未应用所有仪表板设计的页面(因此选项卡将消失等)。您可以将设计应用到.aspx页面,但这是相当多的工作。
答案 2 :(得分:1)
iFrame选项
由于“链接到页面”选项中所述的限制,您可能希望将管理页面加载到放在.ascx控件上的iFrame中。
通过这种方式,您可以从.aspx转到.aspx并仍保留仪表板标签和周围设计。
您仍然需要将包含.aspx页面的文件夹添加到web.config中的umbracoReservedPaths条目
<add key="umbracoReservedPaths" value="/umbraco,/install,/YOUR/PATH/HERE" />