也许我看错了。
我有一个包含3个“分类”列的大表。这些分类名称是MVC的理想控制器/动作名称
的 BUT
所有控制器/操作名称都会向下过滤到表中的某些行,它不会创建要在视图中显示的唯一模型。有没有更好的方式来看待这个?
ID | CAT1 | CAT2 | CAT3 | DETAILS | 1 | a1 | b1 | c1 | foo | ... x | a2 | b2 | c2 | bar | ... n | a3 | b3 | c3 | fun | ...
/ a1 / b2 / c3 /的路由将导致与/ a3 / b3 / c1的路由相同的“数据对象”。我对MVC的(有限)理解在这里没有意义,因为不同的路径应该使用不同的模型 如何让所有这些操作都使用相同的视图?
代码就像
/drills/hydraulic/ --> WHERE(CAT1="a2" AND CAT2="b3")
/loaders/tracked/ --> WHERE(CAT1="x3" AND CAT2="r3")
/hauling/rails/ --> WHERE(CAT1="c8" AND CAT3="b7")
因此,所有3个URL都将使用相同的View,但它们是不同的控制器/操作。 看起来我没有正确地使用这个模式,因为我有很多控制器,但几乎没有任何视图。
答案 0 :(得分:0)
听起来你需要在路由中添加一个控制器 - 就像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" });
...你的路线看起来像这样:
/分类/ CAT1 / CAT2 / CAT3
现在你有一个View(Index.aspx)由一个Controller(ClassificationController)处理。
这是你需要的吗?