0

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。アカウント写真| と:

'System.Web.Mvc.UrlHelper' には 'AccountPicture' の定義が含まれておらず、タイプ 'System.Web.Mvc.Helper' の最初の引数を受け入れる拡張メソッド 'AccountPicture' が見つかりませんでした (using ディレクティブがありませんか?またはアセンブリ参照?)

実行時に次のエラーが発生します。

'System.Web.Mvc.UrlHelper' には 'AccountPicture' の定義が含まれておらず、タイプ 'System.Web.Mvc.UrlHelper' の最初の引数を受け入れる拡張メソッド 'AccountPicture' が見つかりませんでした (using ディレクティブがありませんか?またはアセンブリ参照?)

名前空間 ShadowVenue.Extensions が web.config に登録されています

助けてください、ありがとう!

4

2 に答える 2

3

(タグではなく) タグにShadowVenue.Extensions名前空間を含める必要があります。<system.web.webPages.razor><pages>

于 2011-02-11T13:26:59.013 に答える
1

SLaks の回答に加えて@using ShadowVenue.Extensions、1 回限りの参照用にかみそりビューの上部にタグを配置できます。

于 2011-02-11T13:50:00.993 に答える