目標
同じ動作を持つ 2 つの「異なる」メソッドを作成します。
問題
誰かが私のアプリケーションにアクセスしたときに、項目のリストを表示したいと思います — このリストは によって提供されたものと同じmyapp.com/products/offers/
です。つまり、2 つのメソッド間で同じコードを繰り返したくありません。だから私は尋ねます:私は何をしなければなりませんか?
私が今していること
でHomeController
、Index
型が であるメソッドActionResult
に、次のコードのフラグメントがあります。
public ActionResult Index()
{
return RedirectToAction("Offers", "Products");
}
一方、ProductsController
メソッドでOffers
:
public ActionResult Offers()
{
var products = Products.Build.OffersList();
var categories = Categories.Build.Main();
ProductsViewModel viewModel = ProductsViewModel
{
Products = products,
Categories = categories
};
return View(viewModel);
}
ここで、次の 3 つの点を考慮する必要があります。
- アプリケーションがクライアントを別のページにリダイレクトし、帯域幅を浪費する 2 番目のサーバー要求を生成しています。
- アプリケーションの URL が から
myapp.com/
に変更されましたがmyapp.com/Products/Offers/
、これは本当に必要ありません。 - コードを繰り返すと冗長になります。さらに、 には
ProductsController
論理的に存在してはならないものがありHomeController
ます。
繰り返しになりますが、私は何をしなければなりませんか?