【问题标题】:Add TextBox values to Grid in MVC在 MVC 中将 TextBox 值添加到 Grid
【发布时间】:2016-03-22 08:07:24
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-mvc grid


    【解决方案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 值插入到数据库中。然后,您将从数据库中获取所有记录作为值列表并将该列表返回到视图。

    【讨论】:

    • 其实我想获取所有项目的详细信息。然后只有我将详细信息保存在数据库中。如何持久化我的数据?
    • @user2501044:有很多方法可以保存数据,使用数据库或其他方式。这对于 Stack Overflow 问题来说有点宽泛,任何关于 ASP.NET MVC 的教程都将包括它:asp.net/mvc/tutorials 我建议浏览一个或多个教程。
    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多