C# ASP.NETMVC5。我不知道';我不知道为什么我的表单返回null viewmodel对象
我需要选中所需的复选框,以确定是否需要将音频添加到播放列表中。我看到了所有音频和复选框列表的视图,但提交后,表单什么也不返回,我不知道为什么 下面是我的ViewModel代码:C# ASP.NETMVC5。我不知道';我不知道为什么我的表单返回null viewmodel对象,c#,asp.net,C#,Asp.net,我需要选中所需的复选框,以确定是否需要将音频添加到播放列表中。我看到了所有音频和复选框列表的视图,但提交后,表单什么也不返回,我不知道为什么 下面是我的ViewModel代码: public class AddToPlaylist { public Audio Audio { get; set; } public bool IsSelected { get; set; } = false; } 控制器: public ActionResult Add() { var i
public class AddToPlaylist
{
public Audio Audio { get; set; }
public bool IsSelected { get; set; } = false;
}
控制器:
public ActionResult Add()
{
var item = new List<AddToPlaylist>();
foreach (var a in db.Audios)
{
var cur = new AddToPlaylist();
cur.Audio = a;
item.Add(cur);
}
return View(item);
}
[HttpPost]
public ActionResult Add(List<AddToPlaylist> playLists)
{
return View(playLists);
}
public ActionResult Add()
{
var item=新列表();
foreach(以db.Audios为单位的a值)
{
var cur=new AddToPlaylist();
电流音频=a;
添加项目(当前);
}
返回视图(项目);
}
[HttpPost]
公共操作结果添加(列表播放列表)
{
返回视图(播放列表);
}
和视图:
@using AudioList.ViewModels
@model List<AddToPlaylist>
<h1>Adding audios...</h1>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table class="table table-striped">
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Audio.Band.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Audio.Title)
</td>
<td>
@Html.CheckBoxFor(modelItem => item.IsSelected)
</td>
</tr>
}
</table>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
@使用AudioList.ViewModels
@模型列表
正在添加音频。。。
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.Audio.Band.Name)
@DisplayFor(modeleItem=>item.Audio.Title)
@CheckBoxFor(modelItem=>item.IsSelected)
}
尝试将您的foreach
循环替换为for
循环:
@for (var i = 0; i < Model.Count; i++)
{
<tr>
<td>
@Html.DisplayFor(x => x[i].Audio.Band.Name)
</td>
<td>
@Html.DisplayFor(x => x[i].Audio.Title)
</td>
<td>
@Html.CheckBoxFor(x => x[i].IsSelected)
</td>
</tr>
}
有关将模型绑定到列表的详细信息,我建议您阅读,其中详细说明了输入字段的命名方式,以便ASP.NET MVC模型绑定器能够在回发时检索值。非常感谢。您救了我一天:)很高兴我能帮上忙。如果我的回答帮助您解决了问题,我们将为您提供帮助重新考虑你可能会把它标记为答案,点击它旁边的滴答声。
@Html.HiddenFor(x => x[i].Audio.Band.Name)
@Html.HiddenFor(x => x[i].Audio.Title)