目标
创建两个具有相同行为的“不同”方法。
问题
当有人访问我的应用程序时,我想显示一个项目列表——这个列表与myapp.com/products/offers/
. 换句话说,我不想在两种方法之间重复相同的代码。所以我问:我该怎么办?
我现在在做什么
在HomeController
,在Index
其类型为 的方法上ActionResult
,有以下代码片段:
public ActionResult Index()
{
return RedirectToAction("Offers", "Products");
}
同时,在ProductsController
, onOffers
方法:
public ActionResult Offers()
{
var products = Products.Build.OffersList();
var categories = Categories.Build.Main();
ProductsViewModel viewModel = ProductsViewModel
{
Products = products,
Categories = categories
};
return View(viewModel);
}
现在需要考虑三件事:
- 我的应用程序将客户端重定向到另一个页面,生成第二个服务器请求,浪费带宽;
- 应用程序的 URL 从更改
myapp.com/
为myapp.com/Products/Offers/
,我真的不想要这个; - 如果我重复代码将是多余的——此外,
ProductsController
逻辑上不应该存在的东西HomeController
。
再说一遍:我该怎么办?