もし私たちが「例名」URLで変更するには[アクション名("")]したがって、コントローラー名に対してこれを実行したいと思います。
私がすることができます:
コントローラー名 >example_nameコントローラ> URL内:"/example_controller"
URL 内のコントローラー名を次のように変更したいと思います。「/example-コントローラ」
ベストアンサー1
使用する必要がある属性ルーティングMVC 5 で導入された機能です。
例に基づいて、コントローラーを次のように編集する必要があります。
[RoutePrefix("example-name")]
public class example_nameController : Controller
{
// Route: example-name/Index
[Route]
public ActionResult Index()
{
return View();
}
// Route: example-name/Contact
[Route]
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
コントローラーの上部にある属性を使用すると、RoutePrefix
コントローラー全体のルートを定義できます。
前述のとおり、この機能は MVC 5 でネイティブに使用できますが、以前のバージョンの MVC を使用している場合は、次の NuGet パッケージを追加する必要があります。属性ルーティングコントローラーに次のコードを追加します。
using AttributeRouting;
using AttributeRouting.Web.Mvc;
と呼ばれる別のコントローラーがあり
example_name2Controller
、それにリンクするハイパーリンクを追加する場合は、次のように簡単に実行できます。
@Html.ActionLink("Go to example-name2", "Index", "example_name2");
にリダイレクトするアクションを呼び出す必要はありませんexample_name2Controller
が、他の場合にこれを行う必要がある場合は、次のように実行できます。
public ActionResult RedirectToExample_Name2Controller()
{
return RedirectToAction("Index", "example_name2");
}