ActionButton而不是ActionLink

Sac*_*nth 25 razor asp.net-mvc-3

我想创建一个按钮,单击该按钮会调用一个动作.我曾经习惯Html.ActionLink创建一个完全相同的链接,但没有Html.ActionButton.还有其他方法吗?

Fle*_*lea 25

下面是一个使用Bootstrap的CSS按钮并将其应用于链接以使其看起来与按钮完全相同的示例.

@Html.ActionLink("Select", "Select", new { id = patient.Id }, new { @class = "btn btn-primary", @style = "color:white" })
Run Code Online (Sandbox Code Playgroud)

  • (只是挑剔)同时添加`role ="button"`属性为100%bootstrap reqs兼容 (3认同)

Dar*_*rov 20

还有其他方法吗?

你可以使用一个HTML <form>:

@using (Html.BeginForm("someAction", "someController"))
{
    <button type="submit">OK</button>
}
Run Code Online (Sandbox Code Playgroud)


Bic*_*ave 16

这看起来很简单 - 我错过了什么吗?

@Html.ActionLink("About", "About","Home", new { @class = "btn btn-success" })
Run Code Online (Sandbox Code Playgroud)

  • 要指出显而易见的,这依赖于拥有btn/btn-success css类(假设这是Bootstrap或类似的).ActionLink创建<a>,但问题是寻找实际的<button> html.所以,是的,那就是你所缺少的 (3认同)

Jeo*_*uan 6

用这个:

@using (Html.BeginForm("yourAction", "yourController"))
{
    <input type="submit" value="Some text"/>
}
Run Code Online (Sandbox Code Playgroud)


Cur*_*urt 5

@using (Html.BeginForm("ActionName", "ControllerName")){
   <input type="button" value="Submit" />
}
Run Code Online (Sandbox Code Playgroud)


小智 5

a[type="button"] {
    background-color: #d3dce0;
    border: 1px solid #787878;
    cursor: pointer;
    font-size: 1.2em;
    font-weight: 600;
    padding: 7px;
    margin-right: 8px;
    width: auto;
    text-decoration: none;
}

@Html.ActionLink("ActionName", "ControllerName",null, new {type = "button" })
Run Code Online (Sandbox Code Playgroud)


Gre*_*lor 5

有时您的按钮可能有嵌套标记(例如图标)

这可能对某些人有帮助:

<button type="button" onclick="location.href='@Url.Action("Action", "Controller")'" class="btn btn-success">My button name <i class="glyphicon glyphicon-search"></i></button>
Run Code Online (Sandbox Code Playgroud)

需要 type=button 来防止页面提交...另一种可能的解决方案(如果您认为 type=button 看起来很奇怪,因为该元素已经是一个按钮)是在 OnClick javascript 处理程序中调用 event.preventDefault() 。

<button onclick="event.preventDefault(); location.href='@Url.Action("Action", "Controller")'" class="btn btn-success">My button name <i class="glyphicon glyphicon-search"></i></button>
Run Code Online (Sandbox Code Playgroud)