C# 是否将路线数据用作模型过滤器?

C# 是否将路线数据用作模型过滤器?,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,也许我看错了这一切。 我有一个大表,有3个“分类”列。这些分类名称是MVC的理想控制器/操作名称。 但是 控制器/操作名称所做的只是向下过滤到表中的某些行,它不会创建要在视图中显示的唯一模型。有没有更好的方法来看待这个问题 ID | CAT1 | CAT2 | CAT3 | DETAILS | 1 | a1 | b1 | c1 | foo | ... x | a2 | b2 | c2 | bar | ... n | a3 | b3 | c3

也许我看错了这一切。
我有一个大表,有3个“分类”列。这些分类名称是MVC的理想控制器/操作名称。
但是
控制器/操作名称所做的只是向下过滤到表中的某些行,它不会创建要在视图中显示的唯一模型。有没有更好的方法来看待这个问题

ID | CAT1 | CAT2 | CAT3 | DETAILS | 1 | a1 | b1 | c1 | foo | ... x | a2 | b2 | c2 | bar | ... n | a3 | b3 | c3 | fun | ... 因此,所有3个URL都将使用相同的视图,但控制器/操作不同。
似乎我没有“正确”使用该模式,因为我有很多控制器,但几乎没有任何视图。

听起来你需要在路由中添加一个控制器,就像ClassificationController一样。它将有一个单一的方法:

public ActionResult Index(string cat1, string cat2, string cat3)
    {
        //...load from table and return data to the view
    }
那么您的路由将如下所示:

routes.MapRoute("ClassificationIndex", "classification/{cat1}/{cat2}/{cat3}", new { controller = "classification", action = "index" });
…您的路线如下所示:

routes.MapRoute("ClassificationIndex", "classification/{cat1}/{cat2}/{cat3}", new { controller = "classification", action = "index" });
/分类/cat1/cat2/cat3

现在您有了一个由单个控制器(ClassificationController)处理的单个视图(Index.aspx)


这就是你需要的吗?

你能提供一些代码吗,我在理解这个问题时遇到了困难。这正是我的目标。是否可以创建路由别名/分类/练习实际上是指/classification/value/value/value/value经过一点重构(实际上很多次)后,我同意了你的建议,谢谢。很酷,很高兴我能帮上忙。对不起,我错过了你的第一个评论。