调用MVC控制器和Action方法的HTMLbutton

我知道这是不对的,但为了说明我想这样做:

<%= Html.Button("Action", "Controller") %> 

我的目标是制作一个HTMLbutton,将调用我的MVC控制器的操作方法。

没有必要使用一个表格,除非你想发布的行动。 inputbutton(不提交)将做的伎俩。

 <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) 

这应该适合你。

这就是你可以如何将你的表单转移到Razor中的特定控制器和操作方法。

  <input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" /> 

build立在上面的几个答案,你可以这样做:

 <button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" /> 

HTML <button>元素只能回发到包含它的表单。

因此,您需要创build一个表单,然后在表单中放置一个<button><input type="submit" />

如果您以“未终止的string常量”的forms获取错误,请使用以下剃刀语法:

 <input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" /> 

在控制器中执行操作时,请使用

 return View("Index"); 

要么

 return RedirectToAction("Index"); 

其中Index.cshtml(或生成操作的页面)页面已被定义。 否则,您可能会遇到“视图或其主人没有find…”的错误。

来源: https : //blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/

所以,我正在使用剃刀,但是这也可以使用。 我基本上是在一个链接中包装一个button。

 <a href="Controller/ActionMethod"> <input type="button" value="Click Me" /> </a> 

尽pipeonclick方法,你也可以使用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> 

如果您在主页(“/ Home / Index”),并且想要调用pipe理控制器的索引操作,则以下操作适用于您。

 <li><a href="/Admin/Index">Admin</a></li> 

好的,你基本上需要传递动作到button,并在点击发生时调用它,它不需要在一个from,你可以使用HTML onclickbutton点击button时触发它…

 <button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>