我有一份名单。管理员可以创建、编辑或删除它。模型中的Person.cs
namespace Site.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; } = "";
public string Image { get; set; } = "";
}
}我还有一份新闻清单。模型中的News.cs
namespace Site.Models
{
public class News
{
public int Id { get; set; }
public string Title { get; set; } = "";
public string Body { get; set; } = "";
public string Person { get; set; } = "";
}
}NewsController.cs
[HttpGet]
public IActionResult EditNews(int? id, string[] countries)
{
var persons = _repo.GetAllStaff();
ViewBag.Persons = new SelectList(persons , "Name", "Name");
if (id == null)
return View(new News());
else
{
var news= _repo.GetNews((int)id);
return View(news);
}EditNews.cs
<div>
<form asp-controller="Panel" asp-action="EditNews" method="post">
<input asp-for="Id" type="hidden" />
<div>
<label>Title</label>
<input asp-for="Title" />
</div>
<div>
<label asp-for="Person"></label>
<select asp-for="Person" asp-items="ViewBag.Persons"></select>
</div>
<div>
<label>Body</label>
<textarea id="editor" asp-for="Body"></textarea>
</div>
<input type="submit" value="Submit" />
</form>
</div>当我创建一个人时,我会添加他的名字和照片。当我创建新闻时,我会在正文中添加标题、文本和作者。人员列表从人员表(从上一句中)下载。我选择那个人。我希望不只是人的名字,而且被选中的人的照片也会出现在新闻中。我该怎么做呢?
发布于 2020-04-02 21:14:13
目前,您的视图没有关于Person是什么的上下文,转到您的视图的唯一内容是一个Person姓名的键值对。
我建议首先将_repo.GetAllStaff();的结果添加到视图包中,然后从那里开始。
请看下面的答案here
https://stackoverflow.com/questions/60986363
复制相似问题