我有一个链接女巫我想要你改成一个按钮,链接通过一个参数,看起来如下:
@Html.ActionLink("View", "Print", new { id = item.SalesContractId })
我现在想用一个带有此参数的按钮替换它 {id = item.SalesContractId}
我的按钮如下所示:
<input type="button" value="Print" id="btnFromIndexPrint" />
有人能告诉我怎么做这个吗?
这是我的网页看起来如此,所以你可以看到我想要实现的目标:
@model IEnumerable<Contract.Models.tbSalesContract>
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<p>
@Html.ActionLink("Create New", "Edit")
</p>
<table>
<tr>
<th>
Company
</th>
<th>
Trading As
</th>
<th>
Created
</th>
<th>
Updated
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.CompanyName)
</td>
<td>
@Html.DisplayFor(modelItem => item.TradingAs)
</td>
<td>
@Html.DisplayFor(modelItem => item.C_date)
</td>
<td>
@Html.DisplayFor(modelItem => item.C_updateDate)
</td>
<td>
@* @Html.ActionLink("View", "Edit", new { id = item.SalesContractId }) *@
<input type="button" value="View" id="btnFromIndexView" />
<td>
@* Add Button to print only if contract state is finalized *@
@if (item.IsFinal)
{
@Html.ActionLink("Print", "Print", new { id = item.SalesContractId })
<input type="button" value="Print" id="btnFromIndexPrint" />
}
</td>
</td>
</tr>
}
</table>
</body>
</html>
答案 0 :(得分:2)
如果您查看ActionLink生成的源代码,您会发现这只是一个常规超链接。 id参数将附加到您的网址。
因此,用按钮替换超链接将不一样。
在ASP.NET MVC中,数据可以通过多种方式发送到您的服务器。 ActionLink使用的是将数据附加到URL。 Routing机制将把它们映射到Action方法的特定属性。
发送数据的另一种方法是使用HTML表单。表单可以有一个提交按钮,然后将表单数据发送到您的服务器。
ASP.NET MVC将在搜索操作方法的可能值时检查以下来源:
答案 1 :(得分:1)
为什么要使用按钮而不是链接?如果您担心外观,那么您可以应用一些CSS并使链接看起来像按钮。
超链接(&lt; a&gt;)是为在网页之间形成连接而创建的链接。我建议你在你的情况下使用超链接而不是按钮。如果你想使用javascript做一些客户端操作,那么按钮(提交除外)是好的。
如果你仍然想使用按钮,那么你必须依靠一些javascript来调用控制器动作。