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

问题描述:

我将我的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; } 
     } 
} 
+1

你可以简化你的提交按钮,只是''看看你如何继续?你不应该需要所有的JS重定向的东西在那里 – Vaze 2013-02-21 17:11:25

+0

它仍然为空 – Neeta 2013-02-22 08:34:20

+0

我不认为使用DisplayFor将填充您的模型 – CrazyCoderz 2013-02-22 11:59:09

您可以使用@ Html.HiddenFor(X => x.modelPropery)快速和肮脏的路线。这是对你的DisplayFor的一个补充。

+0

这行不是问题,它的提交按钮在底部 – Neeta 2013-02-22 15:10:02

我使用以下测试它,它的工作原理。

查看查看

@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>没有。