Member 13806552 Ответов: 2

Как скрыть текстовое поле ввода на основе текущего идентификатора?


Привет ниже моя программа, которая отображает список вопросов, основанных на типе идентификатора события, выбранного пользователем. Я пытаюсь понять, как я могу скрыть текстовое поле, которое предназначено для текста ответа, если идентификатор события равен 1, а затем для любого другого идентификатора события будет отображаться текстовое поле.


@model IList<myProject.ViewModels.QuestionViewModel>

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml";

}

@{ 
    ViewBag.Title = "Event Questions";
}

<h2> Event Questions</h2>
@using (Html.BeginForm("PostAnswers", "EventQuestions", FormMethod.Post))
{
    <table class="table">
        @for (var i = 0; i < Model.Count(); i++)
        {

            <tr>
                <td>
                   
                 
                    @Html.HiddenFor(x => x[i].EventId)
                    @Html.HiddenFor(x => x[i].QuestionId)
                    @Html.DisplayFor(x => x[i].QuestionText)
                    <br />
                  
                    @if ()
                    {
                        @Html.HiddenFor(x => x[i].AnswerText, new { @class = "form-control" }) 
                    }
                    else
                    {
                        @Html.TextBoxFor(x => x[i].AnswerText, new { @class = "form-control" })
                    
                    }
   
                     

                  

                </td>
            </tr>
        }
    </table>

    <input type="submit" value="Submit" class="btn btn-primary btn-md" />
    @*Html.ActionLink("Submit", "PostAnswers")*@
   
}


Что я уже пробовал:

Я думал в соответствии с логикой if EventId = 1 {скрывает текстовое поле} else {отображает текстовое поле}. Просто не знаю правильного синтаксиса.

2 Ответов

Рейтинг:
12

F-ES Sitecore

@if (Model[i].EventId == 1)


Member 13806552

Спасибо, что это работает.

Рейтинг:
1

#realJSOP

@if (eventID == 1)
{
    Html.HiddenFor(x => x[i].AnswerText, new { @class = "form-control" });
}
else
{
    Html.TextBoxFor(x => x[i].AnswerText, new { @class = "form-control" });
}


Member 13806552

К сожалению, это не работает.

#realJSOP

Ну, ваш вопрос содержит только половину информации, необходимой для ответа на него. Вы не указали,откуда берется "eventID", поэтому я предположил, что это переменная, которую вы волшебным образом создали. Если он находится в модели страницы или в другом объекте, вы, конечно, должны изменить то, что я вам сказал.