Asp.net mvc 防止提交按钮出现在';新线';
我有一组数据显示在表中的行中。每行末尾都有一个单元格,其中包含一组可在该行上执行的操作(查看、打印、编辑、删除等) 目前,我将这些操作作为简单的链接,由控制器作为GET请求处理,但是我需要将它们更改为POST请求,以满足最佳实践 “我的视图”生成的当前HTML如下(为清晰起见缩短):Asp.net mvc 防止提交按钮出现在';新线';,asp.net-mvc,twitter-bootstrap,twitter-bootstrap-3,asp.net-mvc-5,Asp.net Mvc,Twitter Bootstrap,Twitter Bootstrap 3,Asp.net Mvc 5,我有一组数据显示在表中的行中。每行末尾都有一个单元格,其中包含一组可在该行上执行的操作(查看、打印、编辑、删除等) 目前,我将这些操作作为简单的链接,由控制器作为GET请求处理,但是我需要将它们更改为POST请求,以满足最佳实践 “我的视图”生成的当前HTML如下(为清晰起见缩短): 日期 行动 03/10/2014 | | 当我用表单、隐藏字段和按钮替换删除链接时,无论页面的宽度如何,按钮都会被放置在“新行”上。视图使用以下代码: @using (Html.BeginForm("Del
日期
行动
03/10/2014
|
|
当我用表单、隐藏字段和按钮替换删除链接时,无论页面的宽度如何,按钮都会被放置在“新行”上。视图使用以下代码:
@using (Html.BeginForm("Delete", "Grid"))
{
@Html.Hidden("MainID", Model.MainID)
<button type="submit" class="btn-link" style="border-width: 0px; padding: 0px;">Delete</button>
}
@使用(Html.BeginForm(“删除”、“网格”))
{
@Html.Hidden(“MainID”,Model.MainID)
删除
}
这将生成以下HTML:
<a href="/Grid/Details?mainid=123">Details</a> |
<a href="/Grid/Print?mainid=123">View</a> |
<form action="/Grid/Delete" method="post">
<input id="MainID" name="MainID" type="hidden" value="123" />
<button type="submit" class="btn-link" style="border-width: 0px; padding: 0px;">Delete</button>
|
|
删除
看起来是这样的:
我试着用
来包装表单,但没有什么不同。有没有办法使链接样式按钮与其他链接保持在同一“行”上?您需要在表单样式中添加display:inline
<代码>表单是块级元素
注意:我不推荐内联样式,但这可以解决您的问题:
<a href="/Grid/Details?mainid=123">Details</a> |
<a href="/Grid/Print?mainid=123">View</a> |
<form action="/Grid/Delete" method="post" style="display:inline;">
<input id="MainID" name="MainID" type="hidden" value="123" />
<button type="submit" class="btn-link" style="border-width: 0px; padding: 0px;">Delete</button>
|
|
删除
代码开放示例:您需要将
style=“display:inline;”“
作为对象htmlAttributes添加到您的Html.BeginForm()
。默认情况下,窗体是块级元素
@using (Html.BeginForm("Delete", "Grid"), FormMethod.Post, , new { style = "display:inline;" })
{
@Html.Hidden("MainID", Model.MainID)
<button type="submit" class="btn-link" style="border-width: 0px; padding: 0px;">Delete</button>
}
@使用(Html.BeginForm(“Delete”、“Grid”)、FormMethod.Post、新的{style=“display:inline;”)
{
@Html.Hidden(“MainID”,Model.MainID)
删除
}
上面的代码将把所有表单元素内联。非常好,这确实解决了问题,但在将其设置为答案之前,我将给其他任何人一个机会来提出一个不包含内联样式的解决方案。我使用内联样式只是为了说明。只需在表单中添加一个类,并更新样式表即可。codepen示例演示了如何在没有内联样式的情况下实现这一点。
@using (Html.BeginForm("Delete", "Grid"), FormMethod.Post, , new { style = "display:inline;" })
{
@Html.Hidden("MainID", Model.MainID)
<button type="submit" class="btn-link" style="border-width: 0px; padding: 0px;">Delete</button>
}