Я занимаюсь разработкой веб-сайта в ASP.Net ( Подход к формам ) и переписываю свой URL вручную в моем файле global.asax и Application_BeginRequest метод
посмотрите на этот код:
<div style="background-image: url(<%= ResolveUrl("~/Storage/Images/admin-bk.gif") %>);">
Я использую этот способ в своем aspx-файле для адресации изображений, CSS-файлов или JS-файлов
Проблема здесь:
У меня есть gridview (FlexiGrid), и я использую Jquery Ajax и вызываю веб-метод для заполнения сетки. И мой веб-метод возвращает HTML-код. В этом HTML-коде у меня есть несколько изображений.
Если URL равен:
http://localhost/Cpanel/BasicDefinitions/Regions
мои изображения загружаются правильно. Но если URl равно
http://localhost/Cpanel/BasicDefinitions/Regions/
мои изображения не загружаются.
Чтобы решить эту проблему, мне нужно снова использовать ResolveUrl в моем веб-методе. Но, как я знаю, его нельзя использовать в веб-методе. Так есть ли кто-нибудь, кто может помочь мне справиться с этой ошибкой?
Это мой веб-метод:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public static string FetchRegionList(int page, int rp, string sortname, string sortorder, string query, string qtype)
{
XDocument xmlDoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("rows",
new XElement("page", page.ToString()),
new XElement("total", RegionBLO.Load().Count.ToString()),
new XElement("row", new XAttribute("Id", row.Id.ToString()),
new XElement("cell", "<img id='imgEdit' lang='" + row.Id.ToString() + @"' style='cursor:pointer;border:0px;' src='"+ ("~/Storage/Images/FlexGrid/edit.png") + "' title='Edit' />
<img id='imgDelete' lang='" + row.Id.ToString() + "' style='cursor:pointer;border:0px;' src='"+ ("~/Storage/Images/FlexGrid/close.png") + "' title='Delete' />")
)
)
);
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
xmlDoc.Save(writer);
}
return builder.ToString();
}
Спасибо, Али