Saya harus dapat membuat tautan di Action pada controller untuk mengirim email. Apa praktik terbaik untuk melakukan ini? Saya tidak ingin membangunnya sendiri jika rute saya berubah.
Haruskah saya memiliki pandangan untuk setiap email dan memberikannya dan mengirimkannya? Itu mungkin cara yang baik untuk melakukannya.
asp.net
asp.net-mvc
ScottBelchak
sumber
sumber
Jika Anda memerlukan url lengkap (misalnya untuk mengirim melalui email) pertimbangkan untuk menggunakan salah satu metode bawaan berikut:
Dengan ini, Anda membuat rute yang akan digunakan untuk membangun url:
Di sini url dibangun setelah mesin rute menentukan yang benar:
Dalam kedua metode, 2 parameter terakhir menentukan protokol dan nama host.
Salam.
sumber
Url.Action(action, controller, routevalue, protocol)
juga menghasilkan URL lengkap, jadi Anda tidak perlu menentukan nama host jika tidak perlu.Saya memiliki masalah yang sama, dan tampaknya jawaban Gidon memiliki satu cacat kecil: menghasilkan URL relatif, yang tidak dapat dikirim melalui pos.
Solusi saya terlihat seperti ini:
Dengan cara ini, URL lengkap dihasilkan, dan berfungsi meskipun aplikasi beberapa level di dalam server hosting, dan menggunakan port selain 80.
EDIT: Saya menemukan ini berguna juga.
sumber
Cara lain untuk membuat URL absolut untuk suatu tindakan:
sumber
Saya tahu ini adalah pertanyaan lama, tetapi kalau-kalau Anda mencoba melakukan hal yang sama di ASP.NET Core, berikut adalah bagaimana Anda dapat membuat UrlHelper di dalam suatu tindakan:
Atau, Anda bisa menggunakan
Controller.Url
properti jika Anda mewarisi dariController
.sumber