2011-02-11 73 views
0

我翻閱了關於Razor Views的所有內容,但是我找不到任何關於如何將此UrlHelper用法從WebForms轉換爲Razor的任何內容。MVC3 UrlHelperExtensions with Razor Views(from .ASPX)

.ASPX代碼示例:

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

如何我把它轉換成剃刀:

<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」和沒有擴展方法「AccountPicture」接受類型的第一個參數定義「System.Web.Mvc.Helper」可以是(是否缺少using指令或程序集引用?)

它產生在運行時,這個錯誤:

「System.Web.Mvc.UrlHelper」不包含「AccountPicture」的定義。並且沒有擴展方法'AccountPicture'接受類型'System.Web.M'的第一個參數vc.UrlHelper」可以找到(是否缺少using指令或程序集引用?)

我有命名空間ShadowVenue.Extensions在web.config臨時用戶

請幫忙,謝謝!

+0

有人會問這個問題嗎? [link] http://stackoverflow.com/questions/4975354/html-beginform-displaying-system-web-mvc-html-mvcform-on-page – 2011-02-12 01:54:51

+0

你應該接受一個答案,通過點擊中空檢查。 – SLaks 2011-02-13 00:34:13

回答

3

您需要在<system.web.webPages.razor>標記(而不是<pages>標記)中包含ShadowVenue.Extensions命名空間。

+0

謝謝你的幫助。 – 2011-02-12 01:53:48

1

除了SLaks的回答,您可以在剃鬚刀視圖的頂部放置一個@using ShadowVenue.Extensions標籤作爲一次性參考。