我正在研究创建Create方法(在视图显然使用的控制器内),我可以在其中选择一个或多个" Bands"这些是某些音乐视频中的表演者 - " Vids"。理想情况下,我希望它像Stack上的标签栏一样工作:
所以我可以输入乐队'名称和小下拉菜单可以建议我可以添加到栏中的确切名称,然后再提交 - 提交。
我的问题是 - 我几乎不知道应该如何开始。我开始我的项目,将它的内容分为3个部分,模型与实体和IdentityContext,存储库部分和实际的应用程序部分。
我的虚拟机看起来像这样:
public class VidCreateViewModel
{
public string Title { get; set; }
public string Link { get; set; }
public ICollection<Band> Bands { get; set; }
}
我在VidsController中的Create方法如下所示:
public async Task<ActionResult> Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(VidCreateViewModel model)
{
if (!ModelState.IsValid)
return View(model);
var vid = new Vid();
vid.Title = model.Title;
vid.Link = model.Link;
vid.Bands = model.Bands;
var result = await _vidRepository.SaveVidAsync(vid);
if (!result)
return View("Error");
return RedirectToAction("Index");
}
所以我的问题在于如何在实际视图中管理这种输入形式,所以它会建议乐队Band实体然后将其绑定在数据库中,因此某些视频可能会有很多表演者,很多乐队可以在音乐中表演视频。