URL 内の ASP.NET MVC コントローラー名を変更するにはどうすればいいですか? 質問する

URL 内の ASP.NET MVC コントローラー名を変更するにはどうすればいいですか? 質問する

もし私たちが「例名」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");
}

おすすめ記事