razor - 将模型列表从一页传递到控制器
问题描述
我试图将模型列表传递给控制器,但没有运气。我在生成空视图然后将值从填充表单传递到控制器时遇到问题。我有的:
楷模
public class PostsModel
{
[Required]
[DataType(DataType.DateTime)]
public DateTime PublishDate { get; set; }
[Required]
public List<PostModel> Posts { get; set; }
}
public class PostModel
{
public string Language {get;set;}
public string X {get;set;}
public string Y {get;set;}
// and other properties
}
控制器
public IActionResult New()
{
ViewData["ButtonName"] = "Add";
return View(new PostsModel { PublishDate = DateTime.UtcNow });
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> New(PostsModel model)
{
if (ModelState.IsValid)
{
// some code
// never reaches this point
}
return View(model);
}
形式:
<form method="post">
<h4>XYZ</h4>
<hr />
@{
Model.Posts = new List<PostModel>(2);
for (var i = 0; i < 2; i++)
{
Model.Posts.Add(new PostModel());
}
foreach (var test in Model.Posts)
{
<h4>xyz</h4>
<div class="form-group">
<label asp-for="@test.Subject">Temat</label>
<input asp-for="@test.Subject" class="form-control" />
<span asp-validation-for="@test.Subject" class="text-danger"></span>
</div>
}
}
<button type="submit" class="btn btn-primary">@ViewData["ButtonName"]</button>
</form>
当然模型永远无效。我不知道如何做这样的功能。
解决方案
正如@StephenMuecke 所说,使用 for-loop 是可行的方法。在这个特殊的问题中,我已经足够做:
控制器:
public IActionResult New()
{
ViewData["ButtonName"] = "Add";
// example:
return View(new PostsModel { PublishDate = DateTime.UtcNow, Posts = new List<PostModel>(2) { new PostModel(), new PostModel() } });
}
看法:
for (var i = 0; i < Model.Posts.Count; i++)
{
<h4>xyz</h4>
<div class="form-group">
<label asp-for="@Model.Posts[i].Subject">Temat</label>
<input asp-for="@Model.Posts[i].Subject" class="form-control" />
<span asp-validation-for="@Model.Posts[i].Subject" class="text-danger"></span>
</div>
@*and so one*@
}
我还要感谢 M. Kostrzewski 和 M. Kaletka,他们也在一些 .net 组中帮助了我
推荐阅读
- python - 如何使用 python 在折线图中显示超过 50% 准确度的标签?
- flutter - 颤振 | Riverpod 和 Dart 未处理的异常:在构建期间调用了 setState() 或 markNeedsBuild()
- php - 通过 isset 和 POST 使用变量
- python - 给定该列中值的已排序列表,如何对一列中的熊猫数据框进行排序?
- python-3.x - 在等待多个“wait_for(reaction_add)”被调用时,如何修复我的不和谐机器人?
- r - 如何在每个月初安排一次taskscheduleR?
- python - 使用 MRJob 向所有 Hadoop 映射器广播文件内容
- ruby-on-rails - Rails 6将变量传递给部分
- javascript - 如何使 Lodash sortBy() 对数据进行降序排序?
- postman - 基于没有子任务的用户故事过滤 Jira API 调用