Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# mvc4 razor视图中的一个属性缺少html.beginform_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

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中并不真正支持嵌套表单,我想知道这个场景是否得到支持。太好了-很高兴这有帮助!