【发布时间】:2012-01-07 19:58:06
【问题描述】:
应该创建可以响应不同参数的通用动作还是创建不带参数的不同动作(如果可能)?
无论调用哪个操作,返回类型将始终保持不变。不会有不同意见等情况。
上述任何方法的缺点/优点是什么?
【问题讨论】:
标签: c# asp.net-mvc model-view-controller routing
应该创建可以响应不同参数的通用动作还是创建不带参数的不同动作(如果可能)?
无论调用哪个操作,返回类型将始终保持不变。不会有不同意见等情况。
上述任何方法的缺点/优点是什么?
【问题讨论】:
标签: c# asp.net-mvc model-view-controller routing
使用参数是一种更好的方法,因为对于每个操作,您都需要有不同的视图。在性能方面没有区别,但在维护方面,让两个动作做同样的事情并返回相同类型的视图似乎是多余的。
例如,我将有一个动作并将类别名称传递给它,而不是对每个类别都有一个动作
示例代码:-
public ActionResult Catalog(string id, int?page)
{
Category catalog = pe.Categories.Where(cat => cat.Name == id).Single();
int pageIndex = page ?? 1;
CatProView catProView = new CatProView
{
Name = catalog.Name,
SubCategories = catalog.SubCategories,
PagedProducts = catalog.Products.ToPagedList(pageIndex, PageSize)
};
return View(catProView);
}
【讨论】: