2012-01-25 53 views
2

沒有人知道我可以如何重定向所有請求說/圖像到/內容/圖像在MVC3?我只想要某些命名約定。如何在ASP.NET MVC3中映射資源路由?

謝謝,

+0

這些請求是如何產生的?你有一些遺留網站你想要更改網址嗎? –

回答

0

我可以給出的最佳答案是不要嘗試直接從視圖中請求任何內容。

而是創建HTML幫助器來處理這些請求,並只指定這些幫助器中文件的實際路徑。這樣,當事情不可避免地在你身邊移動時,你在助手中改變了路徑,並且每個視圖都能正常工作。這是我的形象助手的一個例子,我想我從Rob Conery和他驚人的Tekpub MVC Sample中偷了這個。

在這個類中,我宣佈靜態變量pubdir(我的內容目錄)和IMAGEDIR(我的圖片子文件夾在我的內容目錄)

public static string Image(this HtmlHelper helper, string fileName, string attributes) 
    { 
     fileName = string.Format("{0}/{1}/{2}", pubDir, imageDir, fileName); 
     if (string.IsNullOrEmpty(attributes)) 
     { 
      return string.Format("<img src='{0}'/>", helper.AttributeEncode(fileName)); 
     } 
     var temp = string.Format("<img src='{0}' '{1}' />", helper.AttributeEncode(fileName), helper.AttributeEncode(attributes)); 

     return temp; 
    } 

我重載這與其他方法的時候我只有文件名。

public static string Image(this HtmlHelper helper, string fileName) 
    { 
     return Image(helper, fileName, ""); 
    } 

現在,當我想在我看來圖像我叫

@Html.Image("hello.jpg") 

所有我指定的是文件名,並且圖像標籤退給我。 你實際上可以進一步(如果你想)並且創建一個名爲HelloImage的方法,它不接受任何參數,在實際方法中指定文件名時,將圖像重命名爲圖像。

我已經完成了用於橫幅和標誌等全部重複使用的內容。我已經開始爲actionlinks做同樣的事情,以防控制器,動作和區域被移動或重命名。

http://codingsmith.co.za/extending-the-actionlink-helper-in-mvc/

+0

鏈接到css文件的圖像怎麼樣?他們匹配OP的問題,但不是這個答案。 – ANeves