我的索引 View 有一个如下所示的模型:
@model IEnumerable<WebSurvey.Data.Models.Question>
并由此使用:
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Question1)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReplyOptions)
</td>
<td>
@Html.DisplayFor(modelItem => item.Group)
</td>
<tr>
}
</tbody>
但我还需要一个如下所示的模型:
@model WebSurvey.Data.Models.Question
这样我就可以使用“asp-for”中“问题”的属性来创建新问题,因为它不适用于当前模型。
我的问题:有没有办法在我看来创建另一个模型?
希望你能帮助我:)
最佳答案
您应该考虑始终创建一个名称与您的 View 相对应的模型,而不是首先关注您可能要显示的数据。
如果您的 View 名为 Questions,您应该创建一个名为 QuestionsViewModel 的模型。
public class QuestionsViewModel { }
之后,您可以考虑要添加哪些数据,因此如果您有问题列表,请将其作为属性添加到类中。
public class QuestionsViewModel
{
public IEnumerable<Question> Questions { get; set; }
}
/// In your view
@foreach (var question in Model.Questions)
{
}
后来您决定还需要一个用户
。
public class QuestionsViewModel
{
public IEnumerable<Question> Questions { get; set; }
public User User { get; set; }
}
/// In your view
<span>@Model.User.Username</span>
@foreach (var question in Model.Questions)
{
}
重点是,您现在可以添加任意数量的属性。
关于c# - ASP.NET核心: How to add a second model to my View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64441765/