2

目標

同じ動作を持つ 2 つの「異なる」メソッドを作成します。

問題

誰かが私のアプリケーションにアクセスしたときに、項目のリストを表示したいと思います — このリストは によって提供されたものと同じmyapp.com/products/offers/です。つまり、2 つのメソッド間で同じコードを繰り返したくありません。だから私は尋ねます:私は何をしなければなりませんか?

私が今していること

HomeControllerIndex型が であるメソッド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 つの点を考慮する必要があります。

  1. アプリケーションがクライアントを別のページにリダイレクトし、帯域幅を浪費する 2 番目のサーバー要求を生成しています。
  2. アプリケーションの URL が からmyapp.com/に変更されましたがmyapp.com/Products/Offers/、これは本当に必要ありません。
  3. コードを繰り返すと冗長になります。さらに、 にはProductsController論理的に存在してはならないものがありHomeControllerます。

繰り返しになりますが、私は何をしなければなりませんか?

4

2 に答える 2