2012-03-20 53 views
3

我新的MVC3和我們的項目需要類似數量:MVC3如何最大限度地減少控制器

http://www.abc.com/product_1/product_1_subpage/ ... http://www.abc.com/product_2/product_2_subpage/ ...

現在,我已經product_1作爲控制器; product_1_subpage作爲此控制器的操作,但是,請考慮我擁有超過100種不同的產品,我無法爲每個單一產品創建超過100個控制器,我需要對此結構進行操作,有什麼想法?

非常感謝您的幫助,非常感謝您的任何意見。

+0

也許看看讓你的默認控制器/動作接受產品和產品子頁面參數。 – LukeH 2012-03-20 14:47:52

回答

2

對於所有產品,您可能只想要一個名爲Products的Controller,而不必爲每個產品添加一個新的控制器。

使用自定義路線或此問題的默認路線,您仍然可以爲單個產品生成單個鏈接。另外,如果你想用每個產品的新控制器來使用你的方法(你實際上不應該這麼做!),那麼每當你想添加另一個產品時,你將不得不重新編譯和部署你的應用程序 - 這將是一個痛苦要保持。

聽起來好像你應該看看.Net團隊提供的tutorials about MVC以獲得對MVC的基本理解以及如何思考它。

+0

是的,我知道它不會在現實中發揮作用,只是爲了向老闆展示一些東西然後轉向現實,問題在於辦公室裏的每個人都是MVC3的新手,沒有人會對這個新項目有任何意見。謝謝。 – DragonLady 2012-03-20 14:52:31

+0

@YanWang我最好的建議是花幾個小時瀏覽教程,也許看一些視頻 - 從長遠來看,這會節省您的時間。當你學會了在Visual Studio等中使用腳手架時,按照正確的方式使用一些基本的CRUD比按照自己的方式工作要快得多。我敢打賭,只要你瞭解基礎知識,你就會立即得到一些基本的功能爲你的老闆工作! – 2012-03-20 14:57:18

+0

是啊,我已經做了這些視頻和教程,但是當涉及到SEO目的的各種要求時,我需要更多地關注設計。謝謝。 – DragonLady 2012-03-20 15:03:59

0

如何改變URL的格式有點趁路由:

http://www.abc.com/product/subpage/1 
+0

對不起,我們的老闆需要「 - 」作爲搜索引擎優化的目的。但非常感謝你。 – DragonLady 2012-03-20 14:50:58

1

使用自定義路線:

routes.MapRoute(
      "ProductsRoute", // Route name 
      "products/{productName}/{subName}/{id}", // URL with parameters 
      new { controller = "Product", action = "View", id = UrlParameter.Optional } // Parameter defaults 
     ); 

這將使以下工作:

public class ProductController : Controller 
{ 
    // http://yourweb/products/goggles/xray/Elite2000 
    public ActionResult View(string productName, string subName, string id) 
    { 
    } 
} 
相關問題