您好亲爱的我试图将我的模型值从视图传递给控制器。当我试图这样做时,我在控制器中只收到空值我的视图如下 我也使用过@html.hadden,但在点击按钮后仍然只在控制器中收到空值。请有人帮帮我,告诉我这个问题的解决方案。
我的观点是,我正在尝试向卖方传递价值:
@model IEnumerable<onlinebookstore.entityframwork.book>
@using (Html.BeginForm("AddToCart", "ShopingCart", FormMethod.Post))
{
foreach (var item in Model)
{
<img src="@Url.Content(item.book_img)" alt="Image" width="170px"; height="230px" />
<br />
@Html.DisplayFor(modelItem => item.book_name)
<br />
<label>Author:</label>
@Html.DisplayFor(modelItem => item.author)
<br />
<label>Pk.</label>@Html.DisplayFor(modelItem => item.price, new { id = "price" })        
@Html.ActionLink("For Detail..", "Detail", "Book", new { id = item.inventory_id }, null)
<br />
<input type="submit" class="btnreg" id="btnaddcart" value="Add to Basket"/>
<br />
}
}
我的控制器,我试图从视图接收值,这里我只收到空值
[HttpPost]
public ActionResult AddToCart(book model)
{
var cartitem =
db.shoping_cart_item
.FirstOrDefault(u => u.inventory_id == model.inventory_id);
if (cartitem == null && Session["userid"] != null)
{
cartitem = new shoping_cart_item();
cartitem.inventory_id = model.inventory_id;
cartitem.price = Convert.ToDecimal(model.price.ToString());
db.shoping_cart_item.Add(cartitem);
}
return View();
}
我的模特(书)
public string inventory_id { get; set; }
public string book_name { get; set; }
public string author { get; set; }
public string book_type { get; set; }
public Nullable<int> no_book { get; set; }
public Nullable<decimal> price { get; set; }
public string book_img { get; set; }
public string book_description { get; set; }
请帮助我如何在控制器
中使用for-each循环传递模型值答案 0 :(得分:1)
您的表单没有输入。你没有提交任何东西。试试@ Html.TexboxFor()或其他一些助手。
答案 1 :(得分:0)
那么这个问题的解决方法是什么,我可以在视图中显示我的所有值,然后在按钮上单击模型的所有值将传递给控制器。
我认为你做错了。
您的视图循环显示onlinebookstore.entityframwork.book
列表,以便在一个大表单中显示每个内容的详细信息和一个按钮。提交时,所有可以提交的输入都将被发布(最好是一组书籍)。但是在您的控制器上,您只是收到一个onlinebookstore.entityframwork.book
您可能希望首先通过创建循环来重新考虑您的视图,然后在其中包含@using (Html.BeginForm("AddToCart", "ShopingCart", FormMethod.Post))
标记。这会为每个onlinebookstore.entityframwork.book
创建一个表单。只需对单个页面上的多表单进行必要的调整即可。