Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net MVC3如何最小化控制器的数量_Asp.net_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net MVC3如何最小化控制器的数量

Asp.net MVC3如何最小化控制器的数量,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我是MVC3新手,我们的项目需要: 。。。 现在,我有产品_1作为控制器;product_1_子页面作为这个控制器的一个动作,但是,想想我有100多个不同的产品,我不能为每个产品创建100多个控制器,我需要在这个结构上做点什么,有什么想法吗 非常感谢您的帮助,非常感谢您的帮助。您可能希望所有产品都只有一个名为Products的控制器,而不必为每个产品添加新控制器 使用自定义路由或默认路由,您仍然可以为单个产品生成单个链接。此外,如果您要为每种产品使用新的控制器(您真的不应该这样做!),那么每次

我是MVC3新手,我们的项目需要:

。。。

现在,我有产品_1作为控制器;product_1_子页面作为这个控制器的一个动作,但是,想想我有100多个不同的产品,我不能为每个产品创建100多个控制器,我需要在这个结构上做点什么,有什么想法吗


非常感谢您的帮助,非常感谢您的帮助。

您可能希望所有产品都只有一个名为Products的控制器,而不必为每个产品添加新控制器

使用自定义路由或默认路由,您仍然可以为单个产品生成单个链接。此外,如果您要为每种产品使用新的控制器(您真的不应该这样做!),那么每次您想要添加另一种产品时,您都必须重新编译和部署您的应用程序,这将是一个维护的难题


听起来您应该看看.Net团队提供的,以获得对MVC的一些基本了解,以及如何思考它。

如何稍微更改url的格式以利用路由:

http://www.abc.com/product/subpage/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)
    {
    }
}

也许可以考虑让您的默认控制器/操作接受产品和产品子页面参数。对不起,我们的老板需要“-”用于搜索引擎优化。但非常感谢。是的,我知道这在现实中是行不通的,只是为了向老板展示一些东西,然后转向现实,问题是办公室里的每个人都是MVC3的新手,没有人能对这个新项目有任何意见。谢谢。@YanWang我最好的建议是花几个小时阅读教程,或者看几段视频——从长远来看,这将节省您的时间。当您学会在VisualStudio等中使用脚手架时,以正确的方式使用一些基本CRUD要比按照您的方式使用快得多。我敢打赌,一旦你掌握了基本知识,你会很快为你的老板找到一些基本的功能!是的,我已经做了那些视频和教程,但是当涉及到SEO目的的各种需求时,我需要更多地关注设计。谢谢,那不可能是真的。Christofer是对的,您应该使用单个产品控制器,并按id查找适当的产品。让MVC路由为您完成这项工作。最好的SEO是好的内容,而不是URL中是否有特定字符。违反REST惯例可能会比没有“u”字符受到更大的惩罚。非常感谢,我将通过更多的研究来调查这件事。