Имя modelItem не существует в текущем контексте (внутри цикла foreach) - PullRequest
0 голосов
/ 23 января 2019

У меня здесь есть приложение .NET Core 2.0, и в одном из моих представлений я использовал цикл foreach для отображения всех элементов в этой таблице базы данных. Все работало отлично. Теперь я добавил еще один foreach цикл внутри того, который содержится в модале Bootstrap, чтобы показать список идентификаторов, но теперь я получаю сообщение об ошибке

Имя 'modelItem' не существует в текущем контексте

Я уверен в причине. Похоже, все правильно. Может кто-нибудь указать, почему я получаю эту ошибку, или предоставить альтернативный способ получения нужной информации из БД для отображения в этом модальном режиме?

View

@foreach (var Submission in Model.Submissions)
{
    <div class="col-sm-3">
        // Code that populates the project cards on the page
    </div>

    <!-- Modal -->
    <div class="modal fade" id="StatusCodeUpdate-@Submission.ID" tabindex="-1" role="dialog" aria-labelledby="StatusCodeUpdateLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
        <div class="modal-header">
            <h5 class="modal-title" id="StatusCodeUpdateLabel">Update Status Code for @Submission.Title </h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
            </button>
        </div>
        <div class="modal-body">
            <h6>Status Codes</h6>
            <form method="post">
                @foreach (var Code in Model.StatusCodes)
                {
                    @Html.DisplayFor(modelItem = Code.ID) // ERROR!!!

                }
            </form>
        </div>
        ...
}

Код позади

public class TeamleadModel : PageModel
{
    public IList<Submission> Submissions { get; set; }
    public IList<Status> StatusCodes { get; set; }
    private readonly SubmissionContext _submissionContext;
    private readonly StatusContext _statusContext;
    public TeamleadModel(SubmissionContext submission, StatusContext statusContext)
    {
        _submissionContext = submission;
        _statusContext = statusContext;
    }

    public async Task OnGetAsync()
    {
        Submissions = await _submissionContext.Submissions.ToListAsync();
        StatusCodes = await _statusContext.StatusCodes.ToListAsync();
     }

1 Ответ

0 голосов
/ 24 января 2019

Попробуйте @Html.DisplayFor(modelItem => Code.ID).У вас есть назначение вместо лямбда-выражения.

...