【问题标题】:MVC3 UrlHelperExtensions with Razor Views (from .ASPX)带有 Razor 视图的 MVC3 UrlHelperExtensions(来自 .ASPX)
【发布时间】:2011-02-11 10:18:39
【问题描述】:

我浏览了在 Razor Views 上可以找到的所有内容,但找不到任何关于如何将此 UrlHelper 用法从 WebForms 转换为 Razor 的信息。

.ASPX 代码示例:

<img src="<%= Url.AccountPicture(Model.Picture, "bigger") %>" alt="<%= Html.AttributeEncode(Model.FullName) %>" width="73" height="73" />

我如何将其转换为 RAZOR:

<img src="@Url.AccountPicture(Model.Picture, "bigger")" alt="@Html.AttributeEncode(Model.FullName)" width="73" height="73" />

附带的 UrlHelperExtensions.cs 文件:

namespace ShadowVenue.Extensions
    {
        public static class UrlHelperExtensions
        {
            public static string AccountPicture(this UrlHelper helper, string name, string size)
            {
                if (string.IsNullOrEmpty(name))
                    name = "default";

                return helper.Content(string.Format("~/content/images/pictures/{0}_{1}.png", name, size));
            }
        }
    }

Visual Studio 突出显示的错误|@Url。AccountPicture|与:

“System.Web.Mvc.UrlHelper”不包含“AccountPicture”的定义,并且找不到接受“System.Web.Mvc.Helper”类型的第一个参数的扩展方法“AccountPicture”(您是否缺少 using 指令或程序集引用?)

它在运行时产生此错误:

“System.Web.Mvc.UrlHelper”不包含“AccountPicture”的定义,并且找不到接受“System.Web.Mvc.UrlHelper”类型的第一个参数的扩展方法“AccountPicture”(您是否缺少 using 指令或程序集引用?)

我在 web.config 中注册了命名空间 ShadowVenue.Extensions

请帮忙,谢谢!

【问题讨论】:

标签: asp.net-mvc-3 razor image src


【解决方案1】:

您需要在&lt;system.web.webPages.razor&gt; 标记(而不是&lt;pages&gt; 标记)中包含ShadowVenue.Extensions 命名空间。

【讨论】:

    【解决方案2】:

    除了 SLaks 的回答之外,您还可以在剃刀视图的顶部放置一个 @using ShadowVenue.Extensions 标记,以供一次性参考。

    【讨论】:

    • 我继续用这个方法,效果很好,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多