Razor 将模型列表从一页传递给控制器
我试着把模型列表传给控制器,但没有成功。我在生成空视图,然后将填充表单中的值传递给控制器时遇到问题。我所拥有的: 型号Razor 将模型列表从一页传递给控制器,razor,asp.net-core-mvc,Razor,Asp.net Core Mvc,我试着把模型列表传给控制器,但没有成功。我在生成空视图,然后将填充表单中的值传递给控制器时遇到问题。我所拥有的: 型号 public class PostsModel { [Required] [DataType(DataType.DateTime)] public DateTime PublishDate { get; set; } [Required] public List<PostModel> Posts { get; set; }
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类PostsModel
{
[必需]
[数据类型(数据类型.日期时间)]
public DateTime PublishDate{get;set;}
[必需]
公共列表发布{get;set;}
}
公共类后模型
{
公共字符串语言{get;set;}
公共字符串X{get;set;}
公共字符串Y{get;set;}
//及其他物业
}
控制器
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);
}
public IActionResult New()
{
ViewData[“按钮名称”]=“添加”;
返回视图(新PostsModel{PublishDate=DateTime.UtcNow});
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务新建(PostsModel模型)
{
if(ModelState.IsValid)
{
//一些代码
//从未达到这一点
}
返回视图(模型);
}
表格:
<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>
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*@
}
XYZ
@{
模型.职位=新名单(2);
对于(变量i=0;i<2;i++)
{
Model.Posts.Add(new PostModel());
}
foreach(Model.Posts中的var测试)
{
xyz
特马特
}
}
@ViewData[“按钮名称”]
当然,这个模型永远都是无效的。我不知道如何实现这样的功能 正如@StephenMuecke所说,使用for循环是一种有效的方法。在我遇到的这个特殊问题中,这就足够了: 控制器:
<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>
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*@
}
public IActionResult New()
{
ViewData[“按钮名称”]=“添加”;
//例如:
返回视图(new PostsModel{PublishDate=DateTime.UtcNow,Posts=new List(2){new PostModel(),new PostModel()}});
}
查看:
<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>
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*@
}
for(var i=0;i
我还想感谢M.Kostrzewski和M.Kaletka,他们也在一些.net组上帮助了我Is
PostsModel模型
null,当它传入时?@chakeda:PostsModel是可以的,但PostModel列表确实是null。您不能使用foreach
循环为集合生成表单控件-请参阅(并且您在控制器代码中填充模型,而不是在视图代码中)@StephenMuecke您有权