我创建了这个助手:
public static class UrlHelper
{
public static string SharedFolderUrl = "/template/";
public static string SpecificFolderSiteUrl = "/static/";
public static string GetSharedFileUrl(this System.Web.UI.Control control, string fileurl)
{
return control.ResolveUrl(string.Concat(
SharedFolderUrl,
fileurl,
string.Concat((fileurl.Contains("?") ? "&v=" : "?v="), _SiteVersion)
).Replace("//", "/"));
}
}
所以,在主页母版页中,我试图更改这一行:
<%@ Register TagPrefix="mscom" TagName="Wedcs" Src="/template/Wedcs.ascx" %>
由:
<%@ Register TagPrefix="mscom" TagName="Wedcs" Src="<%$ this.GetSharedFileUrl("controls/tracking/Wedcs.ascx")%>" %>
我有一个错误,表明此行的格式不正确。
我需要知道如何解决此问题?
谢谢
您正在寻找的内容称为VirtualPathProvider。
这个概念是我们可以将aspx
和ascx
文件移动到传统文件夹之外,并动态查找和渲染它们。例如,将它们存储在 SQL 数据库或 Azure Blob 存储中。
ASP.NET Web Form是非常成熟的技术,你可以很容易地谷歌如何实现VirtualPathProvider。
在内部使用复杂的东西时,我已经通过使用单个刻度来解决了很多绑定语句格式问题。
而不是
<%@ Register TagPrefix="mscom" TagName="Wedcs" Src="<%$ this.GetSharedFileUrl("controls/tracking/Wedcs.ascx")%>" %>
你可以试试
<%@ Register TagPrefix="mscom" TagName="Wedcs" Src='<%$ this.GetSharedFileUrl("controls/tracking/Wedcs.ascx")%>' %>