我是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 :(得分:2)
对于所有产品,您可能只希望只有一个名为Products的Controller,而不必为每个产品添加新的控制器。
使用自定义路线或相关的默认路线,您仍然可以为各个产品生成单独的链接。此外,如果你使用你的方法为每个产品使用一个新的控制器(你真的不应该!),你每次想要添加另一个产品时都必须重新编译和部署你的应用程序 - 这将是一个要保持痛苦。
听起来你应该看一下.Net团队提供的tutorials about MVC,以便对MVC有一些基本的了解,以及如何思考它。
答案 1 :(得分: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)
{
}
}
答案 2 :(得分:0)
如何更改url的格式以利用路由:
http://www.abc.com/product/subpage/1