gpt4 book ai didi

asp.net-mvc-3 - 我的模型应该如何将动态添加的文本框的数据存储在数据库中?

转载 作者:行者123 更新时间:2023-12-02 05:05:40 25 4
gpt4 key购买 nike

我的模型:

public class Order
{
public int OrderId { get; set; }
public int Quantity { get; set; }
public double Width { get; set; }
public double Height { get; set; }
}

在该模型的强类型 View 中,我有一个带有 TextBoxFor 的表单,该属性如下:

<table>
<tr>
<td><a href="#" onclick="AddTextBox()">+</a></td>
<td>@Html.TextBoxFor(m => m.Quantity)</td>
<td>@Html.TextBoxFor(m => m.Width)</td>
<td>@Html.TextBoxFor(m => m.Height)</td>
</tr>
</table>

AddTextBox() 的链接是一个 jQuery 函数,用于动态添加另一个包含三个以上文本框的表格。

我的 Controller :

[HttpPost]
public ActionResult SaveOrder(Order order)
{
context.Order.Add(order);
context.SaveChanges();
return View();
}

调试时,我可以看到订单对象填充了表单中的数据,但只有第一个数量、重量和高度文本框的值,我知道这是预期的行为,我知道我正在接收所有值,因为我像下面的示例一样进行了测试,并且我的列表已正确填充:

[HttpPost]
public ActionResult SaveOrder(List<int> Quantity, List<int> Width, List<int> Height)
{
return View();
}

所以这里又是一个问题:我应该如何创建一个模型来保存该数据数组并保存在我的数据库中?

我希望我的问题很清楚,感谢您的回答。

最佳答案

您的 View 模型必须有一个您要添加到的列表。您不能将模型添加到单例的固定实例(@model 在您的 View 中)。所以你的模型必须是可扩展的。

这是您的 sample ,Editing a variable length list, ASP.NET MVC

看看他们做了什么,并为您的控件和 View 做同样的事情。我完全基于这篇文章构建了我的应用程序 - 它简单到足以让新手(具有基础知识)理解并在您的领域内实现类似的功能。他们还有完整的演示源代码,您可以下载并使用

只是描述过程太长了,简单的说一下吧

  1. 在您的 Controller 中创建专用操作并使用 ajax 调用它以生成您想要添加到 View 中的任何内容(在您的情况下为 textbox,但它肯定可以更复杂)和

  2. $(<your selector>).append(<your result from ajax call>) .

  3. 在回传给 Controller 时,您会得到一个列表,其中包含您在 View 中添加/删除的实际项数

  4. 您将它们一个一个地添加到您的 DTO 并在完成后提交事务。

希望这对您有所帮助。

关于asp.net-mvc-3 - 我的模型应该如何将动态添加的文本框的数据存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com