Показать определенную форму на основе логики if - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь показать одну форму против другой в зависимости от оператора if.Но когда он запускается, обе формы показываются, а также сам оператор if отображается в виде буквального текста:

if(model.CarId == 0 || string.IsNullOrEmpty(model.Car))
{
    @using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { @model = Model }))
    {
        <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p>
        <p><input type="submit" value="Find Model" /></p>
    }
}
else
{
    @using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { @model = Model }))
    {
        <p>@Html.CheckBoxFor(model => model.Name) Name</p>

        <p><input type="submit" value="Update" /></p>
    }                           
}

Я знаю, что мне нужно @ рядом с if, но попытался это сделать, и тогда представление ругается по поводу остальныхсинтаксиса внутри @if, когда я это делаю.

ОБНОВЛЕНИЕ

Вот что в итоге сработало:

@{
    if (Model.CarId == 0 || string.IsNullOrEmpty(Model.Car))
    {
        using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { model = Model }))
        {
            <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p>
            <p><input type="submit" value="Find Model" /></p>
        }
    }
    else
    {
        using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { model = Model }))
        {
            <p>@Html.CheckBoxFor(model => model.Name) Name</p>

            <p><input type="submit" value="Update" /></p>
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Вы должны добавить @ перед if и удалить его перед использованием, так как он по-прежнему считается кодом вместо разметки.

0 голосов
/ 27 марта 2012

Попробуйте изменить код следующим образом:

@{
    if (Model.CarId == 0 || string.IsNullOrEmpty(Model.Car))
    {
        using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { @model = Model }))
        {
            <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p>
            <p><input type="submit" value="Find Model" /></p>
        }
    }
    else
    {
        using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { @model = Model }))
        {
            <p>@Html.CheckBoxFor(model => model.Name) Name</p>

            <p><input type="submit" value="Update" /></p>
        }
    }
}

Блок "@ {..}" используется для вставки произвольного числа строк кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...