Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 防止提交按钮出现在';新线';_Asp.net Mvc_Twitter Bootstrap_Twitter Bootstrap 3_Asp.net Mvc 5 - Fatal编程技术网

Asp.net mvc 防止提交按钮出现在';新线';

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

我有一组数据显示在表中的行中。每行末尾都有一个单元格,其中包含一组可在该行上执行的操作(查看、打印、编辑、删除等)

目前,我将这些操作作为简单的链接,由控制器作为GET请求处理,但是我需要将它们更改为POST请求,以满足最佳实践

“我的视图”生成的当前HTML如下(为清晰起见缩短):


日期
行动
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>
}