Зарегистрируйте атрибут Src и заблокируйте код c # на странице веб-формы asp.net. - PullRequest
0 голосов
/ 23 мая 2018

Я создал этого помощника:

   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")%>" %>

У меня ошибка указывает, что формат этой строки неправильный.

Мне нужно знать, как я могу решить эту проблему?

Спасибо,

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я решил много проблем с форматом операторов связывания, используя одиночные галочки при использовании чего-то сложного внутри.

Вместо

<%@ Register TagPrefix="mscom" TagName="Wedcs" Src="<%$ this.GetSharedFileUrl("controls/tracking/Wedcs.ascx")%>" %>

Вы можете попробовать

<%@ Register TagPrefix="mscom" TagName="Wedcs" Src='<%$ this.GetSharedFileUrl("controls/tracking/Wedcs.ascx")%>' %>
0 голосов
/ 23 мая 2018

То, что вы ищете, называется VirtualPathProvider .

Идея в том, что мы можем перемещать файлы aspx и ascx за пределы традиционной папки, а также динамически находить и отображать их. Например, храните их в базе данных SQL или хранилище BLOB-объектов Azure.

Веб-форма ASP.NET - очень развитая технология, и вы можете легко определить, как реализовать VirtualPathProvider.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...