Rumah  >  Soal Jawab  >  teks badan

asp.net-mvc - Bagaimana untuk melakukan penghalaan dalam asp.net mvc?

Asp.net mvc selalunya

pengawal/tindakan/parameter

Borang alamat

Tetapi kebanyakan masa, alamat laman web bukanlah laluan sedemikian

Contohnya:

xxxx.com/asp.net/
xxxx.com/asp.net/mvc/
xxxx.com/asp.net/webform/
xxxx.com/asp.net/ado.net/

xxxx.com/javascript/
xxxx.com/javascript/jquery/
xxxx.com/javascript/angularjs/
xxxx.com/javascript/jichu/

xxxx.com/jiaoyu/

Pada masa ini, alamat tidak dalam bentuk pengawal/tindakan/parameter

Saya tidak tahu cara memetakan laluan jenis ini dalam mvc asp.net? ? ?

为情所困为情所困2688 hari yang lalu532

membalas semua(1)saya akan balas

  • 阿神

    阿神2017-05-16 17:08:19

    Ini bergantung pada cara peraturan penghalaan anda ditakrifkan dan susunan laluan ditakrifkan.
    Jika permintaan ini memasuki model saluran paip ASP.NET, ia akan pergi ke laluan yang dipratentukan untuk melakukan pemadanan Apabila ia menemui laluan padanan pertama, ia akan mengembalikan hasil penghalaan secara langsung.
    Sebagai contoh, peraturan penghalaan pertama bagi laluan lalai ialah:

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Admin", action = "Login", id = UrlParameter.Optional }
        );
    

    xxxx.com/asp.net/ akan sepadan dengan peraturan penghalaan ini, controller="asp.net", action="Login";
    xxxx.com/asp.net/mvc/ juga akan sepadan dengan peraturan penghalaan ini, controller="asp.net", action="mvc";

    Andaikan anda mentakrifkan peraturan penghalaan lain dan peraturan penghalaan ini berada di hadapan peraturan penghalaan tadi:

        routes.MapRoute(
            name: "asp.net",
            url: "asp.net/{controller}/{action}/{id}",
            defaults: new { controller = "User", action = "Link", id = UrlParameter.Optional }
        );
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Admin", action = "Login", id = UrlParameter.Optional }
        );
    

    xxxx.com/asp.net/ akan sepadan dengan peraturan penghalaan ini, controller="User", action="Link";
    Walau bagaimanapun, xxxx.com/cast/ tidak akan sepadan dengan peraturan penghalaan pertama, tetapi akan terus sepadan dengan peraturan penghalaan kedua Pada masa ini, perlawanan akan berjaya, controller="cast", action="Login"

    Adalah disyorkan agar anda membaca buku "Menguasai Rangka Kerja ASP.NET MVC3 Bab 11 Peraturan Laluan menyediakan analisis dan pengenalan kepada isu ini.

    balas
    0
  • Batalbalas