ASP.NET MVC中的LinkBut​​ton

Jef*_*ock 10 asp.net-mvc webforms asplinkbutton runatserver

我需要将一些ASP LinkBut​​tons实例化到ASP.NET MVC视图页面上.我尝试了一些东西,但我不能让它们出来.这是我最近的代码化身:aspx文件

<body>
<% using (Html.BeginForm("TitleDetail", "Movies", FormMethod.Post, new{runat="server"})) { %> 

    <ul>
    <% foreach (var disc in Model.Title.tblDiscs) %>
    <% { %>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>
    <% } %>
    </ul>
<% } %> 
</body>
Run Code Online (Sandbox Code Playgroud)

它在Firefox中呈现的是我正在枚举的集合中每个成员的文本链接的一个实例,但它们不是超链接,只是文本.生成的HTML看起来像这样

<form action="/MyMovies/TitleDetail/239" method="post" runat="server">test title <br />

   <ul>
        <li>

            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>

        </li>

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

我尝试在每个asp:LinkBut​​ton标记中添加一个runat ="server"属性,但我得到一个运行时异常,控件只能放在带有runat ="server"属性的表单标记内.我认为我已经做过了,所以我真的不明白.任何人都可以向我解释我做错了什么,以及我需要做些什么来修复它以便LinkBut​​tons实际上是链接的?

Joh*_*udi 15

我的猜测是你想用LinkBut​​ton使用它来提交表单吗?如果是这种情况,我做了类似的事情,它是这样的:

<% using (Html.BeginForm("TitleDetail", "Movies", 
    FormMethod.Post, new{ id = "MyForm", name = "MyForm" })) { %>     
<ul>
    <% foreach (var disc in Model.Title.tblDiscs) { %>
        <li>
            <a class="do-something-link" href="javascript:void(0);">Click</a> 
        </li>
    <% } %>
</ul>
<% } %>
Run Code Online (Sandbox Code Playgroud)

然后通过jQuery处理提交:

$(document).ready(function(){
    $("a.do-something-link").click(function(ev) {
        ev.preventDefault();
        $("#MyForm").submit();
    });
}); 
Run Code Online (Sandbox Code Playgroud)


Dre*_*nic 7

使用ASP.NET MVC,您应该使用Html.ActionLink(...)辅助方法(等).它们提供比LinkBut​​tons更丰富的功能.