在ASP.net MVC中,我需要传递Viewpage中应该隐藏的值数组,我需要保存那些隐藏的字段值

时间:2016-11-15 06:06:55

标签: c# asp.net-mvc

在ASP.net MVC中,我需要在Viewpage中传递一组值,这些值应该被隐藏,我需要保存那些隐藏的字段值。我正在附加模型,控制器和视图页面。

模型

 public int[] unit_id { get; set; }

的ViewPage

<td>
  @item.UoM_Name                                                     
  @Html.Hidden("unit_id", new { @Value = item.UoM_Id })                                                       
</td>

控制器

public ActionResult Product_Unit(ML_Product_HierarchyModel productmodel)
        {
            if (ModelState.IsValid)
            {
                var count = productmodel.currency_id_array.Count();
                for (int i = 0; i < count; i++)
                {
                    ML_Product_Unit_Price unit_price = new ML_Product_Unit_Price();
                    unit_price.Product_Id = productmodel.Product_Id;
                    unit_price.Unit_Price = productmodel.unit_price_array[i];
                    unit_price.UoM_Id = productmodel.unit_id[i];
                    unit_price.Currency_Id = productmodel.currency_id_array[i];
                    db.ML_Product_Unit_Price.Add(unit_price);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            }        
            return View();
       }

2 个答案:

答案 0 :(得分:0)

最好从数组中创建一个逗号分隔的字符串,然后将其保存到隐藏字段。并在发布请求时再将该字符串转换为数组。

答案 1 :(得分:0)

您可以使用HiddenFor将数组保存为HTML格式。

    @if (Model.currency_id_array != null)
    {
       for (int i = 0; i < Model.currency_id_array.Length; i++)
       {
           @Html.HiddenFor(x => x.currency_id_array[i])
       }
    }

之后,您可以像在控制器中一样访问您的阵列。