私はこれが正しくないことを知っています、しかし実例のために私はこのようなことをしたいのですが:
<%= Html.Button("Action", "Controller") %>
私の目標は、MVCコントローラーのアクションメソッドを呼び出すHTMLボタンを作成することです。
アクションに投稿したいのでなければ、フォームを使用する必要はまったくありません。入力ボタン(送信しない)でうまくいくでしょう。
<input type="button"
value="Go Somewhere Else"
onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
かみそりの構文は次のとおりです。
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />
type = "button"は、ページが送信されないようにします。代わりにそれはあなたの行動を実行します。
Url.Actionを使用してコントローラアクションに対するURLを生成するように指定できます。そのため、次のいずれかを使用できます。
<form method="post" action="<%: Url.Action("About", "Home") %>">
<input type="submit" value="Click me to go to /Home/About" />
</form>
または
<form action="#">
<input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
<input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
これを試して:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)
これでうまくいくはずです。
上記のいくつかの答えに基づいて、あなたはこれを行うことができます:
<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
これが、Razorの特定のコントローラとアクションメソッドにフォームを送信する方法です。
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
HTMLの<button>
要素は、それを含むフォームにしかポストバックできません。
したがって、アクションにPOSTするフォームを作成し、そのフォームに<button>
または<input type="submit" />
を入れる必要があります。
"unterminated string constant"としてエラーが発生した場合は、以下のカミソリ構文を使用してください。
<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
コントローラにアクションを実装するときは、
return View("Index");
または
return RedirectToAction("Index");
index.cshtml(またはアクションを生成するページ)pageはすでに定義されています。そうでなければ、 "ビューまたはそのマスターが見つかりません..."というエラーが発生する可能性があります。
ソース: https://blogs.msdn.Microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
Onclickメソッドにもかかわらず、次のようにformactionを使うこともできます。
<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
この例を使うほうがいい
<a href="@Url.Action("Register","Account", new {id=Item.id })"
class="btn btn-primary btn-lg">Register</a>
だから、私はRazorを使っていますが、これはどちらを使っても動作します。私は基本的にリンクの中にボタンをラップしています。
<a href="Controller/ActionMethod">
<input type="button" value="Click Me" />
</a>
あなたがホームページ( "/ Home/Index")にいて、あなたがAdminコントローラのIndexアクションを呼び出したいのであれば、以下はあなたのために働きます。
<li><a href="/Admin/Index">Admin</a></li>
OK、基本的にはボタンにアクションを渡してクリックが発生したときに呼び出す必要があります。fromの内側にある必要はありません。 ボタンがクリックされたときにそれを起動するには、HTML onclick
onボタンを使います。 ..
<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>
この例を使うほうがいいです。
ActionLink
を使用してアクションとコントローラを呼び出します。
@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})
この例を使用してください。
<button name="nameButton" id="idButton" title="your title" class="btn btn-secondary" onclick="location.href='@Url.Action( "Index","Controller" new { id = Item.id })';return false;">valueButton</button>