我有以下代码:
public class NavigationPath
{
private string menuItems = "<li>" +
"<a href=\"#\">home</a>" +
"</li>";
但我想要:
public class NavigationPath
{
private string menuItems = "<li>" +
"<a href=\"" + ResolveClientUrl("~/home.aspx") + "\">re</a>" +
"</li>";
但是,我不能在类中使用ResolveClientUrl。有什么想法吗?
发布于 2010-02-11 00:45:31
ResolveClientUrl是System.Web.UI.Control类的成员,因此可以通过以下方式直接访问它:
var url = ResolveClientUrl("~/Some/Url/");
在asp.net页面的代码中调用时。
要在类中使用它,您必须将Page (或页面上的控件)传递到类的构造函数中。即使这样,我也不确定您是否能够按照您所指出的方式使用它。你可能需要做一些类似的事情:
public class NavigationPath
{
private string menuItems = string.Empty;
public NavigationPath(Page page)
{
menuItems = "<li>" + "<a href=\"" + page.ResolveClientUrl("~/Home.aspx") + "\">home</a>" + "</li>";
}
}
然后在你的asp.net页面中做类似这样的事情:
var navPath = new NavigationPage(this);
发布于 2010-02-11 01:14:47
除了在页面对象(或任何控件)上调用ResolveClientUrl
之外,您还可以使用VirtualPathUtility.ToAbsolute("~/home.aspx");
,它会给出与调用ResolveUrl("~/home.aspx");
相同的结果
发布于 2014-02-12 18:58:01
有点老了,但也许能帮上忙。使用:
using System.Web.UI;
在代码中:
new Control().ResolveClientUrl("Path");
对我来说很有效,我使用的是Web应用程序,而不是网站解决方案。
问候
https://stackoverflow.com/questions/2238519
复制相似问题