将模型从视图传递到控制器的问题

时间:2013-02-21 15:31:09

标签: c# unit-testing asp.net-mvc-4

我将Checkout视图与我希望传递给Purchase控制器的模型绑定 绑定到我的Purchase视图。 在传递它的那一刻,该值为空。

我做错了什么?

结帐视图:

@model List<BasketModels.Product>

@using (Html.BeginForm("Purchased", "Basket", FormMethod.Post))
{

// problem here
    <input type="submit" value="Purchase"/>
}

购买控制器:

[HttpPost]
        public ActionResult Purchased(List<BasketModels.Product> products)

产品模式:

public class BasketModels
    {
        public class Product
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public string Description { get; set; }

            [DisplayFormat(DataFormatString = "{0:N}", ApplyFormatInEditMode = true)]
            public decimal UnitPrice { get; set; }

            public string ImageURL { get; set; }

            [Display(Name = "Quantity")]
            public int Quantity { get; set; }


            public int Stock { get; set; }

            [DisplayFormat(DataFormatString = "{0:N}", ApplyFormatInEditMode = true)]
            public decimal Price { get; set; }

            [DisplayFormat(DataFormatString = "{0:N}", ApplyFormatInEditMode = true)]
            public decimal TotalPrice { get; set; }
        }
}

2 个答案:

答案 0 :(得分:0)

您可以使用@ Html.HiddenFor(x =&gt; x.modelPropery)快速而肮脏的路线。这是对你的DisplayFor的补充。

答案 1 :(得分:0)

我使用以下方法对其进行了测试,但它确实有效。

结帐视图

@model ProjectName.Models.BasketModels.Product

@using (Html.BeginForm("Purchased", "Basket", FormMethod.Post))
{
    @Html.TextBoxFor(m=>m.Description)
    <input type="submit" value="Purchase"/>
}

购买控制器

[HttpPost]
public ActionResult Purchased(BasketModels.Product products)
{
     return View();
}

我意识到您可能仍希望将其绑定为列表。在那种情况下,我一直试图想办法如何做几天,我没有解决方案。 List<string>有效。 List<model>没有。