c# - 如何将动态创建的文本框值从视图传递到 MVC 中的控制器
问题描述
我想将动态生成的文本框中的所有值从视图传递到控制器。
我的模型:
public class QuestionModel
{
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Question here")]
public string Question { get; set; }
}
我的观点:
@using (Html.BeginForm("Add_Question", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<div class="form-group">
//here I'm generating dynamic textboxes
@for (int i = 1; i <= numberOfQuestions; i++)
{
<div class="col-md-12">
@Html.LabelFor(model => model.Question, new { })
@Html.TextBoxFor(model => model.Question, "", new { @required = "required", @class = "form-control" })
@Html.ValidationMessageFor(model => model.Question, "", new { @class = "text-danger" })
</div>
}
</div>
<div class="form-group">
<div class="col-md-12">
<input type="submit" value="Done" class="btn-success form-control" />
</div>
</div>
}
我的控制器:
public ActionResult Add_Question()
{
return View();
}
[HttpPost]
public ActionResult Add_Question(QuestionModel model)
{
//Get all textbox values here
return RedirectToAction("Home", "Home");
}
我应该为此创建一个字符串列表吗?如果是,那怎么办?请帮忙。
解决方案
您可以稍微修改 viewmodel 属性并在视图内循环以包含每个元素,List<string>
如下所示:
模型
[Display(Name = "Question here")]
public List<string> Question { get; set; }
看法
@for (int i = 0; i < numberOfQuestions; i++)
{
<div class="col-md-12">
@Html.LabelFor(model => model.Question)
@Html.TextBoxFor(model => model.Question[i], "", new { @required = "required", @class = "form-control" })
</div>
}
请注意,集合索引从零开始,因此第一个问题的索引应为 0。
附加说明:
您可能需要为此参考List<string>
中提供的创建自定义验证属性,因为默认情况下仅检查 null 而不是整个集合项的总数(空集合不为 null)。RequiredAttribute
Count = 0
相关问题:
推荐阅读
- php - 表单特殊字符验证
- r - 如何修改 R 代码以使用 Nadaraya-Watson 估计器而不是普通的最小二乘估计器来解决回归问题?
- c++ - 无法识别的 getline
- google-cloud-platform - 使用 Google Cloud IPSec VPN 的别名子网
- angular - Angular Material - 添加后选择新选项卡 - 事先没有选项卡时出现问题
- javascript - 使用 pycparser 从 C 解析到 Javascript
- python - 熊猫重新采样 .ffill()
- constructor - 模块或名称空间未定义错误 FS0039
- python - 将 pandas 列从字符串 Quarters 和 Years 数组转换为 datetime 列
- python - 路径查找算法练习和使用 .txt 文件