我可以像使用Html.ActionLink一样使用asp:Button吗?

ESR*_*ogs 3 asp.net asp.net-mvc

我有一个ActionLink:

    <%: Html.ActionLink("MyAction", "MyAction") %>
Run Code Online (Sandbox Code Playgroud)

我想用一个按钮代替.像这样的东西:

    <asp:Button ID="Button1" runat="server" Text="MyAction" />
Run Code Online (Sandbox Code Playgroud)

单击按钮执行与单击ActionLink相同的操作需要做什么?

Kri*_*ast 5

actionlink与webforms中的Hyperlinkbutton或Hyperlink控件相当.它们都在html中呈现标准锚元素.所以是的,如果你想让它看起来像一个按钮,你应该在它上面添加一些css酱.

<%: Html.ActionLink("MyAction", "MyAction", null, new { @class = "button" } %>
Run Code Online (Sandbox Code Playgroud)

并在css文件中:

.button  {
    outline: 0; 
    margin: 0 4px 0 0;
    padding: 0 1em;
    height: 2em;
    text-decoration: none !important; 
    cursor: pointer; 
    position: relative;
    text-align: center;
    display: inline-block;
    background-color:Green;
    border:1px solid Lime;
}
a.button { color:White;}
Run Code Online (Sandbox Code Playgroud)

注意:我是一名开发人员,所以有点设计挑战.使用border-left,-right,-bottom和-top可以让它看起来更漂亮.

第一条评论后更新:

其他对我来说不太好的选择是:

<% Using (Html.BeginForm("About", "Home")) {%>

    <input type="submit" value="About" />

<% } %>
Run Code Online (Sandbox Code Playgroud)

或者使用Button控件:

<form id="Form1" runat="server">

    <asp:Button runat="server" ID="sfsf" Text ="Go!" PostBackUrl="/Home/About" />

</form>
Run Code Online (Sandbox Code Playgroud)