我知道这是不对的,但为了说明的缘故,我想这样做:
<%= Html.Button("Action", "Controller") %>
我的目标是做一个HTML按钮将调用我MVC控制器的操作方法。
除非您要发布的行动没必要用一个形式在所有。输入按钮(未提交)会做的伎俩。
<input type="button"
value="Go Somewhere Else"
onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
所以,我用剃刀,但是这将工作要么使用。我基本上包裹在一个链接按钮。
<a href="Controller/ActionMethod">
<input type="button" value="Click Me" />
</a>
当你实现控制器,用行动
return View("Index");
要么
return RedirectToAction("Index");
其中Index.cshtml(或生成该行动的页)页已定义。否则,你有可能遇到“视图或它的主人未找到...”错误。
来源: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>
如果你在主页(“/首页/索引”),你想打电话联系控制器的索引操作,下面就为你工作。
<li><a href="/Admin/Index">Admin</a></li>
OK,你基本上需要通过动作按钮并调用它,当点击发生时,它并不需要是一个内部的,您可以使用按钮HTML onclick
来触发它获得点击按钮时...
<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>
剃刀语法如下:
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />
类型=“键”防止页从提交。相反,它执行你的行动。
您可以使用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")'" />
这是你可以提交您的形式在剃刀特定的控制器和行动方法。
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
的HTML <button>
元件只能回发到包含它的形式。
因此,你需要做的形式,POST到的动作,然后把一个<button>
或<input type="submit" />
形式。
在情况下,如果你得到一个错误为“未终止的字符串常量”,使用下面的剃刀语法:
<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />