目標
のように「Index」メソッドをオーバーロードしますmyapp.com/Category/SomethingHere/
。
問題
私はこのようCategoryController
にIndex()
メソッドを持っています:
//
// 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
します。
あいまいな質問ですか?
多分。残念ながら、私がここ (スタック上) で見つけた他の答えは、私にとってはうまくいきませんでした。私はすでにパトリックによるこの質問、パパ・バーガンディによるこの質問、アンディ・エヴァンスによるこの質問などを試しました。