首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.Net C# ResolveClientUrl内部类

ASP.Net C# ResolveClientUrl内部类
EN

Stack Overflow用户
提问于 2010-02-11 00:34:32
回答 3查看 18.4K关注 0票数 18

我有以下代码:

代码语言:javascript
复制
public class NavigationPath
{
    private string menuItems = "<li>" +
                                    "<a href=\"#\">home</a>" +
                               "</li>";

但我想要:

代码语言:javascript
复制
public class NavigationPath
{
    private string menuItems = "<li>" +
                                    "<a href=\"" + ResolveClientUrl("~/home.aspx") + "\">re</a>" +
                               "</li>";

但是,我不能在类中使用ResolveClientUrl。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-11 00:45:31

ResolveClientUrl是System.Web.UI.Control类的成员,因此可以通过以下方式直接访问它:

代码语言:javascript
复制
var url = ResolveClientUrl("~/Some/Url/");

在asp.net页面的代码中调用时。

要在类中使用它,您必须将Page (或页面上的控件)传递到类的构造函数中。即使这样,我也不确定您是否能够按照您所指出的方式使用它。你可能需要做一些类似的事情:

代码语言:javascript
复制
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页面中做类似这样的事情:

代码语言:javascript
复制
var navPath = new NavigationPage(this);
票数 8
EN

Stack Overflow用户

发布于 2010-02-11 01:14:47

除了在页面对象(或任何控件)上调用ResolveClientUrl之外,您还可以使用VirtualPathUtility.ToAbsolute("~/home.aspx");,它会给出与调用ResolveUrl("~/home.aspx");相同的结果

票数 49
EN

Stack Overflow用户

发布于 2014-02-12 18:58:01

有点老了,但也许能帮上忙。使用:

代码语言:javascript
复制
using System.Web.UI;

在代码中:

代码语言:javascript
复制
new Control().ResolveClientUrl("Path");

对我来说很有效,我使用的是Web应用程序,而不是网站解决方案。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2238519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档