Beberapa RoutePrefixes per pengontrol menggunakan perutean Atribut MVC?

Dengan perutean Atribut MVC yang baru, saya tahu Anda dapat menetapkan beberapa atribut Route ke satu ActionResult, tetapi saya mencari cara untuk melakukan hal yang sama di level RoutePrefix. Saya memiliki pengontrol yang, dalam setiap tindakan, harus dapat diakses melalui tiga rute:

/Games/{Title}/Characters/{Route} /Books/{Title}/Characters/{Route} /Cinema/{Title}/Characters/{Route}

Saya mencoba memasukkan tiga atribut RoutePrefix individual, tetapi saya mendapatkan kesalahan Deuplace RoutePrefix attribute. Jika saya mencoba menggunakan daftar yang dipisahkan koma, saya mendapatkan Best override method for does not contain a constructor that takes 3 arguments.

Apakah mungkin untuk mengatur RoutePrefix sehingga mengambil tiga rute yang saya inginkan untuk pengontrol saya?


person Matthew Verstraete    schedule 29.06.2014    source sumber


Jawaban (1)


Menjalankan banyak tes, saya menemukan bahwa saya hanya dapat menambahkan 3 atribut Route ke level pengontrol dan berfungsi sesuai keinginan saya.

Sunting: cara yang lebih baik untuk melakukannya yang saya temukan adalah menggunakan metode pencocokan regex

[RoutePrefix("{Type:regex(Games|Cinema|Books)}/{SectionRoute}/Character/")]

person Matthew Verstraete    schedule 29.06.2014
comment
Bagaimana Anda melakukannya tanpa regex? Bisakah saya menambahkan beberapa baris atribut saja? [RoutePrefix("prefix1")] [RoutePrefix("prefix2")] - person Zapnologica; 28.10.2015
comment
@Zapnologica Sudah lama sejak saya melakukan ini tetapi jika saya ingat benar Anda melakukannya seperti contoh Anda atau Anda memisahkannya dengan koma seperti [RoutePrefix("prefix1"), RoutePrefix("prefix2")] coba keduanya dan lihat apa yang terjadi - person Matthew Verstraete; 28.10.2015
comment
Jangan berpikir itu mungkin. Ini akan membuang atribut Duplikat RoutePrefix. - person user1961100; 29.10.2015
comment
Dan menurut saya Anda harus memberi tanda akhir $ di akhir setiap string untuk melarang Gamesssdlasd, Cinemasasdasd dll. [RoutePrefix("{Type:regex(Games$|Cinema$|Books$)}/{SectionRoute}/Character/")] - person Okan Kocyigit; 16.02.2018
comment
github.com/asadmalik3/WebApiMultipleRoutePrefixAttribute Ini memungkinkan beberapa rutePrefix. - person SatanEnglish; 27.02.2018