Использование параметров - лучший подход, потому что с каждым действием вам нужно иметь другое представление. С точки зрения производительности нет никакой разницы, но с точки зрения обслуживания кажется излишним, когда два действия выполняют одно и то же и возвращают один и тот же тип представлений.
Например, у меня будет одно действие и я передам ему имя категории, а не действие для каждой категории
Пример кода: -
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);
}