[英]How to override @url.content in MVC?
I have an MVC application. 我有一个MVC应用程序。 After I finished the web site I need to change
@url.content
behavior. 完成网站后,我需要更改
@url.content
行为。
So I need to override @url.content
in all of my website application. 所以我需要在我的所有网站应用程序中覆盖
@url.content
。 How can I do it? 我该怎么做?
<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script>
<script src="@Url.Content("~/Scripts/ui/jquery.ui.core.js")"></script>
<script src="@Url.Content("~/Scripts/ui/jquery.ui.widget.js")"></script>
<script src="@Url.Content("~/Scripts/ui/jquery.ui.tabs.js")"></script>
<script src="@Url.Content("~/Scripts/ui/jquery.ui.accordion.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.nivo.slider.js")"></script>
<script src="@Url.Content("~/Scripts/jwplayer.js")"></script>
I think your best bet here would be just to create another UrlHelper
Extension Method. 我认为你最好的选择就是创建另一个
UrlHelper
扩展方法。
public static class MyExtensions
{
public static string ContentExt(this UrlHelper urlHelper, string Content)
{
// your logic
}
}
MHF, MHF,
As mentioned in my comments above, i 'feel' you should create a bespoke html.image() helper, rather than try to override the url.content() helper, given that your problem is related to images, and not url.content() per se. 正如我在上面的评论中所提到的,我觉得你应该创建一个定制的html.image()帮助器,而不是试图覆盖url.content()帮助器,因为你的问题与图像有关,而不是url.content ()本身。 here's how i'd approach this:
这是我如何处理这个问题:
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"})
Now, the above is purely a 'lift' from an old mvc project, with a comment added to give a hint as to what you might do. 现在,上面纯粹是一个旧的mvc项目的“升力”,添加了一个注释,以暗示你可能会做什么。 I haven't tested this in any way, so caveat emptor :)
我没有以任何方式测试过这个,所以请注意:)
good luck 祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.