【发布时间】:2020-08-27 16:30:03
【问题描述】:
我有一个包含 4 个单选按钮的页面(考试问题和 4 个选项可供选择)。使用下面的代码,我可以在用户单击按钮后读取选项值。
我有两个问题:
- 为什么页面首次加载时所有单选按钮都被选中?
- 如何找出帖子后选择了哪个单选按钮?
谢谢!
StudentQuestions.cshtml
@page "{examId:int?}"
@model VerityLearn.WebUI.Pages.Questions.StudentQuestionsModel
@{
ViewData["Title"] = "StudentQuestions";
}
<div>
<form method="post">
@Html.LabelFor(model => model.QuestionViewModel.QuestionText);
<p>Select the correct option.</p>
int optionIndex = -1;
@foreach (OptionViewModel opt in Model.QuestionViewModel.Options)
{
optionIndex++;
@Html.RadioButtonFor(model => model.QuestionViewModel.Options[optionIndex], Model.QuestionViewModel.Options[optionIndex]);
@opt.OptionText<br />
}
<button type="submit" asp-route-questionIndex="@(Model.QuestionNdx + 1)" class="btn btn-primary @nextDisabled">Next</button>
</form>
</div>
StudentQuestions.cshtml.cs
public class StudentQuestionsModel : PageModel
{
//private readonly VerityContext _context;
private readonly SignInManager<VerityUser> _signInManager;
private readonly UserManager<VerityUser> _userManager;
private readonly IStudentQuesionsUOW _studentQuesionsUOW;
private readonly VerityLearn.DataAccess.VerityContext _context;
public StudentQuestionsModel(
VerityContext context,
SignInManager<VerityUser> signInManager,
UserManager<VerityUser> userMrg,
IStudentQuesionsUOW studentQuesionsUOW
)
{
_context = context;
_signInManager = signInManager;
_userManager = userMrg;
_studentQuesionsUOW = studentQuesionsUOW;
} // end public StudentQuestionsModel(VerityContext context, SignInManager<VerityUser> signInManager, UserManager<VerityUser> userMrg)
[BindProperty]
public QuestionViewModel QuestionViewModel { get; set; }
[BindProperty]
public Question Question { get; set; }
public async Task<IActionResult> OnPostAsync()
{
... Not sure what to do here ...
}
QuestionViewModel.cs
public class QuestionViewModel
{
public int QuestionId { get; set; }
public int ExamQuestionOrder { get; set; }
public string QuestionText { get; set; }
public bool? IsSingleSelection { get; set; }
public List<OptionViewModel> Options { get; set; }
}
【问题讨论】:
-
这可能会有所帮助:radiobutton in asp net mvc
-
@Ned 请同时发布
OptionViewModel。学生也可以给出多个答案吗? -
都是非常棒的答案!太感谢了!根据客户的喜好选择一个不带JS的
标签: asp.net asp.net-mvc model-view-controller razor razor-pages