2

目標

のように「Index」メソッドをオーバーロードしますmyapp.com/Category/SomethingHere/

問題

私はこのようCategoryControllerIndex()メソッドを持っています:

//
// GET: /Category/
public ActionResult Index(string categoryName)
{
    if (categoryName != null)
        return View(categoryName);
    else
    {
        return Content("Test");
    }
}

myapp.com/Category/Cars/またはにアクセスするまで、正常に動作します¹ myapp.com/Category/Sports/

これらの URL にアクセスしようとしたときに受け取った応答は次のとおりです。

「/」アプリケーションでサーバー エラーが発生しました。

リソースが見つかりません。

私がすでに試したこと

App_Start/RouteConfig.cs

routes.MapRoute(
     name: "CategoriesMapping",
     url: "{controller}/{categoryName}",
     defaults: 
         new { controller = "Categoria", action = "Index", 
                     categoryName = URLParameters.Optional 
             }
 );

しかし、成功せず、問題は同じです。

考慮事項

私がすでに試した他のこと:

public ActionResult Index(string? categoryName) { }

public ActionResult Index(Nullable<string> categoryName) { }

成功?いいえ。この構文を使用すると、Visual Studio からエラーが返されます。

型 "string" は、ジェネリック型またはメソッド "System.Nullable" でパラメーター "T" として使用するために、null 非許容値型である必要があります。

観察

¹: 「通常」とは、アクセスするmyapp.com/Category/とが表示されることを意味Testします。

あいまいな質問ですか?

多分。残念ながら、私がここ (スタック上) で見つけた他の答えは、私にとってはうまくいきませんでした。私はすでにパトリックによるこの質問、パパ・バーガンディによるこの質問、アンディ・エヴァンスによるこの質問など試しました。

4

1 に答える 1