LinkButton在ASP.NET 视
-
22-08-2019 - |
题
我需要一些实例ASP LinkButtons到一个ASP.NET 视图页。我已经尝试了一些东西,我不能让他们出来的权利。这是我最新的身的代码: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>
什么它呈现在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>
我已经尝试增加一个目前="服务器"attribuite各asp:LinkButton标签的,但我获得一个运行异常的控制只能把里面的一种形式的标记与所运="服务器"的属性。我想我已经做了,所以我并不真正理解这一点。任何人都可以向我解释什么我做错了,我需要做的修复,以便LinkButtons是实际上的线?
解决方案
与ASP.NET 视你应该使用 Html.ActionLink(...)
辅助方法(等等)。他们提供更丰富的功能比LinkButtons.
其他提示
我猜是你想要使用LinkButton提交表格的使用它吗?如果是这种情况下,我已经做了类似的东西它像这样的东西:
<% 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>
<% } %>
然后处理的提交通过jQuery:
$(document).ready(function(){
$("a.do-something-link").click(function(ev) {
ev.preventDefault();
$("#MyForm").submit();
});
});
不幸的是,ASP.NET 视不支持网络形式的控制权。对不起!:(
你必须使用一个标准HTML链接。
我写了一个有点粗扩展的方法。随时改善本(这是所有我需要的话):
public static IHtmlString ActionButton(this UrlHelper urlHelper, string buttonText,
string actionName)
{
var html = string.Format("<input type=\"button\" value=\"{0}\" " +
"onclick=\"window.location = '{1}'\"/>",
buttonText, urlHelper.Action(actionName));
return new HtmlString(html);
}
和在查看,呼叫就是这样的:
@Url.ActionButton("Button Text", "ActionMethod")
不隶属于 StackOverflow