【发布时间】:2021-06-27 13:42:12
【问题描述】:
我有一个名为“Question.cs”的类,还有一个名为“Answer.cs”的类。 我想向我的操作发送问题列表而不是一个问题,但我不知道该怎么做。 事实上,我不知道如何将问题作为参数。谁能告诉我如何在行动中收到问题? 这是我的课程:
public class Question
{
[Key]
public int QuestionId { get; set; }
[Required]
[MaxLength(500)]
public string QuestionTitle { get; set; }
[Required]
[MaxLength(500)]
public string QuestionAnswer { get; set; }
//property
public List<Answer> Answers { get; set; }
}
public class Answer
{
[Key]
public int AnswerId { get; set; }
[Required]
public int QuestionId { get; set; }
[Required]
[MaxLength(500)]
public string AnswerTitle { get; set; }
//property
[ForeignKey("QuestionId")]
public Question Question { get; set; }
}
这是我的 Razor 视图(Question.cshtml):
@using GameShop.Data.Domain.QuestIonsAnswers
@model List<GameShop.Data.Domain.QuestIonsAnswers.Question>
@{
Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}
<form asp-action="Index" method="POST">
@foreach (var item in Model)
{
<div>@item.QuestionTitle</div>
<input asp-for="@item.QuestionAnswer" Value="@item.QuestionId" />
<br />
}
<input type="submit" class="btn btn-primary" value="ثبت">
</form>
如您所见,我使用了一个 foreach 循环,它给了我所有的“问题”。所以我不能在我的行动中只收到一个“问题”。这些是我的行动:
public IActionResult Index()
{
return View(_context.Questions.ToList());
}
[HttpPost]
public IActionResult Index(Question question)
{
foreach (var item in question)
{
var ans=new Answer(){
QuestionId=item.QuestionId,
AnswerTitle=item.QuestionAnswer
};
_context.Answers.Add(ans);
_context.SaveChanges();
}
return View(_context.Questions.ToList());
}
我想我必须在第二次行动中获得List<Question>,但我不知道如何?
谁能帮我一步一步来?
【问题讨论】:
-
不确定您的实际意图。您想在页面上只显示一个问题并只提交一个答案吗?您想在您的页面上显示多个问题并单独提交每个答案吗?您想在您的页面上显示多个问题并一次提交所有答案吗?
-
我想展示我的所有问题并立即提交。假设我的表中有 3 个问题。我想显示所有这些,然后一次将它们全部提交给操作(索引)。
标签: c# asp.net-core-mvc model-binding