是否可以拦截应用程序中使用的所有和任何相对路径,并在评估绝对路径之前删除/编辑其中的一部分?
示例:
在mvc view page-
中<%= Html.Image("~/{somefolder}/logo.png") %>
我想截取相对路径“〜/ {somefolder} /logo.png”并将“{somefolder}”替换为通过某种逻辑检索的文件夹位置(数据库,if / else等)。
答案 0 :(得分:2)
你可以创建一个帮助你做到这一点。
例如......
public static string LinkedImage(this HtmlHelper html, string url)
{
Regex regex = new Regex("({(.*?)})");//This is off the top of my head regex which will get strings between the curly brackets/chicken lips/whatever! :).
var matches = regex.Matches(url);
foreach (var match in matches)
{
//Go get your value from the db or elsewhere
string newValueFromElsewhere = GetMyValue(match);
url = url.Replace(string.Format("{{0}}", match), newValueFromElsewhere);
}
return html.Image(url);
}
在寻求解决网址问题方面,您可能希望在Stephen Walther的博客上查看here。