Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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# .NET MVC 4-foreach循环中的按钮操作_C#_.net_Asp.net Mvc - Fatal编程技术网

C# .NET MVC 4-foreach循环中的按钮操作

C# .NET MVC 4-foreach循环中的按钮操作,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我现在看到的是这样的景象: @using (Html.BeginForm("Compare", "Carousel", FormMethod.Post)) { @foreach (var product in Model.Products) { <tr> <td>@product.Provider.Name</td> <td>&pound;@Math.Round(prod

我现在看到的是这样的景象:

@using (Html.BeginForm("Compare", "Carousel", FormMethod.Post)) 
{
@foreach (var product in Model.Products)
{
        <tr>
             <td>@product.Provider.Name</td>
             <td>&pound;@Math.Round(product.MonthlyPremium, 2, MidpointRounding.AwayFromZero)</td>
             <td>@Html.ActionLink("More Details", "MoreDetails", new { id = product.ProductId })</td>
             <td><button name="compare" value="@product.ProductId">Compare</button</td>
        </tr>
}
}
我真正想要的是,当点击一个按钮时,将调用控制器,并将已选择的产品(点击的按钮)添加到项目列表中


我如何才能真正找出控制器中单击了哪个按钮?为什么我在网上找不到以前做过的教程,当然是它的基本功能?还是我的做法不对?

ASP.NET MVC接受所有输入,并通过动词将其发送到动作。这些控件的绑定是通过视图上的
name
属性进行的,值是根据我们讨论的控件(文本、复选框、单选、选择、按钮等)进行的。您的
产品上可以有一个名为compare的属性,名为compare,它将接收您单击的按钮的值。

ASP.NET MVC接受所有输入,并通过动词将其发送到操作。这些控件的绑定是通过视图上的
name
属性进行的,值是根据我们讨论的控件(文本、复选框、单选、选择、按钮等)进行的。您可以在您的
产品上有一个名为compare的属性,它将接收您单击的按钮的值。

使用onclick。在循环中设置js隐藏值。在控制器检查中。

使用onclick。在循环中设置js隐藏值。在控制器检查中。

每个项目有一张表格怎么样

例如

@foreach(Model.Products中的var产品)
{
@product.Provider.Name
&磅;@Math.Round(乘积.MonthlyPremium,2,中点舍入。远离零)
@ActionLink(“更多细节”,“更多细节”,新的{id=product.ProductId})
@使用(Html.BeginForm(“Compare”、“Carousel”、FormMethod.Post))
{
比较
}
}

每个项目有一张表格怎么样

例如

@foreach(Model.Products中的var产品)
{
@product.Provider.Name
&磅;@Math.Round(乘积.MonthlyPremium,2,中点舍入。远离零)
@ActionLink(“更多细节”,“更多细节”,新的{id=product.ProductId})
@使用(Html.BeginForm(“Compare”、“Carousel”、FormMethod.Post))
{
比较
}
}

您能否提供有关用例的更多详细信息?是点击按钮提交表单还是什么?你能把产品的详细型号代码也放进去吗?你能提供更多关于用例的详细信息吗?这是按钮点击提交表单还是什么?你能不能把产品的详细型号代码也放在工作状态,我设置了按钮的名称,嘿,普雷斯托,一切都工作了!非常感谢。成功了,我设定了按钮的名称,嘿,普雷斯托,一切都成功了!非常感谢。我使用了下面的答案,一切都很好,ProductsWithDetail模型用按钮的“name”属性进行了更新,这很好。但是谢谢你的回答:)我使用了下面的答案,一切都很好,ProductsWithDetail模型用按钮的“name”属性进行了更新,这很好。但谢谢你的回答:)
[HttpPost]
public ActionResult Compare(ProductsWithDetailModel model) // This is a guess, Model may not persist? 
 {
       // Code here

       return View("Index", model);
 }
@foreach (var product in Model.Products)
{
    <tr>
         <td>@product.Provider.Name</td>
         <td>&pound;@Math.Round(product.MonthlyPremium, 2, MidpointRounding.AwayFromZero)</td>
         <td>@Html.ActionLink("More Details", "MoreDetails", new { id = product.ProductId })</td>
         <td>
             @using (Html.BeginForm("Compare", "Carousel", FormMethod.Post)) 
             {
                 <input type="hidden" name="productId" value="@product.ProductId"  />
                 <button name="compare">Compare</button>
             }
         </td>
    </tr>
}