1

我的应用程序中有 2 个文本框、一个提交按钮和一个网格。现在我在单击提交按钮时将文本框值添加到网格中。怎么做?`

[HttpPost]        
        public ActionResult AddToCart(string ItemID, string ItemName, CartToCart cart)
        {
            ViewBag.Message = "This is a partial view.";
            List<Models.CartToCart> lst = new List<Models.CartToCart>();
            CartToCart ct = new CartToCart();

            cart.ItemID = Convert.ToInt32(ItemID);
            cart.ItemName = ItemName;
            lst.Add(cart);
            return View(lst);
        }`

看法

        <% using (Html.BeginForm()) 
   { %>
    <%: Html.ValidationSummary(true)%>
    <input id="ItemID" name="ItemID" type="text" />
    <input id="ItemName" name="ItemName" type="text" />
    <input type="submit" value="Save" />
    <%= Html.Telerik().Grid(Model)
           .Name("Cart")%>
     <% } %>

但是当我添加第二个值时,第一个值被第二个值替换。如何在网格中附加第二个值?

4

1 回答 1

1

您将值存储在哪里?目前,您正在每个 POST 上创建一个新的空列表并向该列表添加一个值:

List<Models.CartToCart> lst = new List<Models.CartToCart>();
CartToCart ct = new CartToCart();
cart.ItemID = Convert.ToInt32(ItemID);
cart.ItemName = ItemName;
lst.Add(cart);
return View(lst);

因此,您只能使用最近的值填充视图,而丢弃任何以前的值。如果您想保留的不仅仅是当前发布的值,那么您需要将它们保存在更永久的地方,例如数据库。因此,在您的控制器操作中,您会将新的 POST 值插入到数据库中。然后,您将从数据库中获取所有记录作为值列表并将该列表返回到视图。

于 2013-06-19T12:26:04.320 回答