MHF
Как упомянуто в моих комментариях выше, я «чувствую», что вам следует создать специальный помощник html.image (), а не пытаться переопределить помощник url.content (), учитывая, что ваша проблема связана с изображениями, а не url.content () per se. вот как я подхожу к этому:
public static partial class HtmlHelperExtensions
{
public static MvcHtmlString Image(this HtmlHelper helper,
string url,
object htmlAttributes)
{
return Image(helper, url, null, htmlAttributes);
}
public static MvcHtmlString Image(this HtmlHelper helper,
string url,
string altText,
object htmlAttributes)
{
TagBuilder builder = new TagBuilder("image");
var path = url.Split('?');
string pathExtra = "";
// NB - you'd make your test for the existence of the image here
// and create it if it didn't exist, then return the path to
// the newly created image - for better or for worse!! :)
if (path.Length > 1)
{
pathExtra = "?" + path[1];
}
builder.Attributes.Add("src", VirtualPathUtility.ToAbsolute(path[0]) + pathExtra);
builder.Attributes.Add("alt", altText);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing));
}
}
Useage:
@Html.Image("~/content/images/ajax-error.gif", new{@class="error_new"})
Теперь вышесказанное является просто «лифтом» из старого проекта MVC, с добавлением комментария, чтобы дать подсказку о том, что вы могли бы сделать. Я не проверял это никоим образом, так что будьте внимательны:)
удачи