2012-03-20 51 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) 
    { 
    } 
} 
相关问题