我有一个生成HTML的.cs
文件。在其中,我想通过使用WebPageExecutingBase.Href()
方法使这段代码变得更加简单,我之前在许多cshtml文件中做过(主要是使用代字号~
)。 / p>
但是,如果我只包含代字号,则生成的HTML上的链接会被破坏:
string html = "<a href=\"~/SomeFolder/SomeFile.cshtml\">Link</a>"; //Generates a broken link.
但我似乎无法在Href()
文件的环境中导入适当的using指令用于.cs
方法。
我试过了:
using System.Web;
using System.Web.WebPages;
然后尝试使用WebPageExecutingBase.Href()
,但是当“WebPageExecutingBase”部分出现在Intellisense中时,“Href()”没有(并且实际上,生成服务器端错误要求第二个'对象'参数,但我之前已经多次使用过这个相同的方法。)
我试图在这里查询信息:http://msdn.microsoft.com/en-us/library/system.web.webpages.webpageexecutingbase(v=vs.111).aspx但无济于事。
我认为我有这个权利,但现在我甚至不确定我是否可以在这里使用这种方法。
有没有办法在Href()
C#文件的字符串中生成的HTML中实现.cs
方法(或其中的相同功能)?
答案 0 :(得分:3)
Href方法不适用于类。您应该使用VirtualPathUtility。您需要为System.Web包含using指令,然后执行此操作:
string html = string.Format("<a href=\"{0}\">Link</a>", VirtualPathUtility.ToAbsolute("~/SomeFolder/Somefile.cshtml"));