如何在循环中设置 asp-items 和 asp-for
How to set asp-items and asp-for in a loop
任何人都可以帮助我在语法中动态设置 asp-items 参数(如果可行的话)吗?
基本上,我的 ViewBag 有项目 Q1、Q2、Q3。其中每一个都有一个 select 下拉列表。
我循环遍历 Model.Questions 中的所有问题,对于其中的每一个问题,我都需要获取存储在 ViewBag 中的 select 下拉列表。所以它会是
ViewBag.Q1,然后是 ViewBag.Q2 等。我尝试构建一个字符串“ViewBag.@questionId”,但我得到了一个关于类型的错误(当它需要一个列表时是字符串)。
希望对您有所帮助!
@foreach (var question in Model.Questions) //For every question, generate question, and generate responses
{
<div class="form-row">
<label class="control-label col-md-4">@question.QuestionText</label>
@if (question.QuestionResponse.Count() != 0) //If count ViewData[QID] != 0, generate select dropdown, otherwise, input.
{
var questionId = "Q"+question.QuestionId.ToString();
<select class="form-control col-md-4" asp-items="ViewBag.???"><option></option></select>
}
else
{
<input class="form-control col-md-4" />
}
</div>
}
您可以尝试像下面这样更改您的代码。
var questionId = "Q" + question.QuestionId.ToString();
<select class="form-control col-md-4" asp-items="(SelectList)ViewData[questionId]"><option></option></select>
任何人都可以帮助我在语法中动态设置 asp-items 参数(如果可行的话)吗? 基本上,我的 ViewBag 有项目 Q1、Q2、Q3。其中每一个都有一个 select 下拉列表。 我循环遍历 Model.Questions 中的所有问题,对于其中的每一个问题,我都需要获取存储在 ViewBag 中的 select 下拉列表。所以它会是 ViewBag.Q1,然后是 ViewBag.Q2 等。我尝试构建一个字符串“ViewBag.@questionId”,但我得到了一个关于类型的错误(当它需要一个列表时是字符串)。
希望对您有所帮助!
@foreach (var question in Model.Questions) //For every question, generate question, and generate responses
{
<div class="form-row">
<label class="control-label col-md-4">@question.QuestionText</label>
@if (question.QuestionResponse.Count() != 0) //If count ViewData[QID] != 0, generate select dropdown, otherwise, input.
{
var questionId = "Q"+question.QuestionId.ToString();
<select class="form-control col-md-4" asp-items="ViewBag.???"><option></option></select>
}
else
{
<input class="form-control col-md-4" />
}
</div>
}
您可以尝试像下面这样更改您的代码。
var questionId = "Q" + question.QuestionId.ToString();
<select class="form-control col-md-4" asp-items="(SelectList)ViewData[questionId]"><option></option></select>