在MVC中将TextBox值添加到Grid

时间:2013-06-19 12:16:12

标签: asp.net-mvc grid

我的应用中有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")%>
     <% } %>

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

1 个答案:

答案 0 :(得分: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的值,那么您需要将它们保留在更永久的位置,例如数据库。因此,在您的控制器操作中,您将新的POSTed值插入数据库。然后,您将从数据库中获取所有记录作为值列表,并将该列表返回到视图。