Saya tahu ini tidak benar, tetapi demi ilustrasi saya ingin melakukan sesuatu seperti ini:
<%= Html.Button("Action", "Controller") %>
Tujuan saya adalah membuat tombol HTML yang akan memanggil metode tindakan pengontrol MVC saya.
html
asp.net-mvc
Aaron Salazar
sumber
sumber
Jawaban:
Tidak perlu menggunakan formulir sama sekali kecuali Anda ingin memposting ke tindakan. Tombol input (tidak mengirimkan) akan melakukan trik.
sumber
public static string ActionButton(this HtmlHelper helper, string action, string controller, string text) { return String.Format("<input type=\"button\" value=\"{0}\" onclick=\"location.href='{1}' />",text,Url.Action(action,controller)); }
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller", new { parameter1 = value1 }) %>'" />
Sintaks silet ada di sini:
sumber
'input'
menjadi'button'
dan yang menyelesaikan kesalahan.<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
melakukan triktype = "button" mencegah halaman mengirim. alih-alih itu melakukan tindakan Anda.
sumber
Coba ini:
Ini seharusnya bekerja untuk Anda.
sumber
Anda dapat menggunakan Url.Action untuk menentukan menghasilkan url ke tindakan pengontrol, sehingga Anda bisa menggunakan salah satu dari berikut ini:
atau:
sumber
Ini adalah bagaimana Anda bisa mengirimkan formulir Anda ke pengontrol dan metode tindakan tertentu di Razor.
sumber
Membangun beberapa jawaban di atas, Anda bisa melakukan ini:
sumber
<button>
Elemen HTML hanya dapat mengirim kembali ke formulir yang berisi itu.Oleh karena itu, Anda perlu membuat formulir yang POST untuk tindakan, lalu masukkan a
<button>
atau<input type="submit" />
dalam formulir.sumber
Dalam kasus jika Anda mendapatkan kesalahan sebagai "konstanta string tak tertentu", gunakan sintaks silet berikut:
sumber
Meskipun Metode onclick Anda juga dapat menggunakan formaction sebagai berikut:
sumber
lebih baik gunakan contoh ini
sumber
Jadi, saya menggunakan Razor tapi ini juga bisa digunakan. Saya pada dasarnya membungkus tombol di tautan.
sumber
Saat Anda menerapkan tindakan di controller, gunakan
atau
di mana halaman Index.cshtml (atau halaman yang menghasilkan tindakan) sudah ditentukan. Kalau tidak, Anda kemungkinan mengalami kesalahan "tampilan atau masternya tidak ditemukan ...".
Sumber: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
sumber
Gunakan contoh ini:
sumber
Jika Anda berada di beranda ("/ Beranda / Indeks") dan Anda ingin memanggil tindakan Indeks pengontrol Admin, berikut ini akan bekerja untuk Anda.
sumber
lebih baik gunakan contoh ini .
Panggilan aksi dan pengontrol menggunakan
ActionLink
:sumber
OK, pada dasarnya Anda perlu meneruskan aksi ke tombol dan menyebutnya ketika klik terjadi, itu tidak perlu di dalam dari, Anda dapat menggunakan HTML
onclick
pada tombol untuk memicu ketika tombol diklik ...sumber
Anda selalu dapat bermain-main dengan htmlHelpers dan membuat beberapa hal
Dan kemudian pada tampilan panggil seperti ini
sumber