C# mvc4 razor视图中的一个属性缺少html.beginform
我有这样的观点:C# mvc4 razor视图中的一个属性缺少html.beginform,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我有这样的观点: @using System.Globalization @using Order.Models @model CartIndexViewModel @{ ViewBag.Title = "Shopping Cart"; } @using (Html.BeginForm()) { <div class="table-responsive"> <table class="table"> <th
@using System.Globalization
@using Order.Models
@model CartIndexViewModel
@{
ViewBag.Title = "Shopping Cart";
}
@using (Html.BeginForm())
{
<div class="table-responsive">
<table class="table">
<thead>
<th>Qty</th>
<th>Item</th>
<th class="text-right">Price</th>
<th class="text-right">Subtotal</th>
</thead>
<tbody>
@foreach (var m in Model.Cart.Items)
{
<tr>
<td class="text-center">@m.Quantity</td>
<td class="text-left">@m.Item.Name</td>
<td class="text-right">@m.Item.Price.ToString("C", new CultureInfo("en-GB"))</td>
<td class="text-right">@((m.Quantity * m.Item.Price).ToString("C", new CultureInfo("en-GB")))</td>
<td>
@using (Html.BeginForm("RemoveFromCart", "Cart"))
{
@Html.Hidden("ItemId", m.Item.Id)
@Html.HiddenFor(x => x.ReturnUrl)
<input class="btn btn-danger btn-sm" type="submit" value="Remove"/>
}
</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="3" class="text-right">Total:</td>
<td class="text-right">
@Model.Cart.ComputeTotalValue().ToString("C", new CultureInfo("en-GB"))
</td>
</tr>
</tfoot>
</table>
<div class="text-center">
<a class="btn btn-primary" href="@Model.ReturnUrl">Back to Menu</a>
</div>
</div>
}
@使用系统全球化
@使用Order.Models
@模型CartIndexViewModel
@{
ViewBag.Title=“购物车”;
}
@使用(Html.BeginForm())
{
数量
项目
价格
小计
@foreach(Model.Cart.Items中的var m)
{
@m、 数量
@m、 项目名称
@m、 项目。价格。ToString(“C”,新文化信息(“en GB”))
@((m.Quantity*m.Item.Price).ToString(“C”,新文化信息(“en GB”))
@使用(Html.BeginForm(“RemoveFromCart”、“Cart”))
{
@隐藏(“ItemId”,m.Item.Id)
@Html.HiddenFor(x=>x.ReturnUrl)
}
}
总数:
@Model.Cart.ComputeTotalValue().ToString(“C”,新文化信息(“en GB”))
}
我正在测试“删除项”功能,但缺少
@使用(Html.BeginForm(“RemoveFromCart”、“Cart”))
从购物车中的第一项开始。我有多个测试项,但由于某些原因,每次测试的第一项都缺少html.beginform功能。
例如,查看源代码时,我有以下第一项:
与第一张图片相比,第二张图片的结构如下:
知道我们在这里遗漏了什么吗?为什么每次第一项都遗漏了表单块
提前感谢,我不确定为什么会发生这种情况,但是嵌套的表单标记在HTML中无效,所以我猜MVC也不支持这种情况。奇怪的是,它会在第一项上失败,而不是在其他项上失败 我相信有解决办法,你可以手动构建内部标签,但是考虑到它不可能正确地发回,我想你可能想尝试一种不同的方法
我建议要么完全删除外部表单标记,要么对帖子使用不同的机制,例如使用一个动作链接和JavaScript组合,以避免使用表单机制 我不知道有任何具体的MVC问题,但我的理解是HTML中并不真正支持嵌套表单,我想知道这个场景是否得到支持。太好了-很高兴这有帮助!