MVC操作:通用/参数化或多个操作

时间:2011-11-28 10:30:27

标签: c# asp.net-mvc model-view-controller routing

是否应创建可响应不同参数的通用操作或创建不带参数的不同操作(如果可能)?

无论调用哪个动作,返回类型将始终保持不变。不会有不同意见的情况等。

上述任何一种方法的缺点/优点是什么?

1 个答案:

答案 0 :(得分:1)

使用参数是一种更好的方法,因为对于每个操作,您需要具有不同的视图。性能方面没有区别,但维护方面看起来多余,让两个动作做同样的事情并返回相同类型的视图。

例如,我将有一个操作并将其传递给类别名称,而不是针对每个类别执行操作

示例代码: -

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);
    }