加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET MVC4动态表单生成

发布时间:2020-12-16 01:55:47 所属栏目:百科 来源:网络整理
导读:我是ASP.NET MVC的新手,需要一些帮助.我需要创建一个动态创建表单的表单.例如,假设我有一个名为Person的模型.该人有名字和姓氏.在表单中,我希望允许用户输入此人的姓名.我知道如何做到这一点,但我不知道该怎么做是允许用户添加多个人并使其成为单个表单提交.
我是ASP.NET MVC的新手,需要一些帮助.我需要创建一个动态创建表单的表单.例如,假设我有一个名为Person的模型.该人有名字和姓氏.在表单中,我希望允许用户输入此人的姓名.我知道如何做到这一点,但我不知道该怎么做是允许用户添加多个人并使其成为单个表单提交.

在页面的初始加载(视图)上,它默认显示两个空文本框(对于名字和姓氏).我还有一个添加按钮,允许用户在表单中添加另一行,并为第二个人显示相同的2个文本框.现在,如果用户提交它,它将有2个文本框用于第一个名称,2个用于姓氏.

我不知道是否有办法在没有回复的情况下做到这一点.或者回复我唯一的选择?

编辑:忘了提我正在使用Razor引擎.

谢谢

解决方法

不需要多个POST.您希望表单向您的操作发送一组Person.行动将是这样的

[HttpPost]
public ActionResult AddPeople(Person[] people){ ... }

为此,您必须枚举视图中的输入字段.必须将它们编入索引,从0开始并相应地递增,如:

@using(Html.BeginForm("AddPeople","TheController",FormMethod.Post))
{
  <input type="text" name="people[0].FirstName" />
  <input type="text" name="people[0].LastName" />
  ...
  <input type="text" name="people[1].FirstName" />
  <input type="text" name="people[1].LastName" />
  ...
  <input type="text" name="people[n].FirstName" />
  <input type="text" name="people[n].LastName" />
}

您必须使用javascript添加新字段,并使用简单的DOM操作.请记住按顺序保持索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读