Как условно включить элементы страницы в тег формы

0

Работает на С#, Visual Studio 2012, MVC4 EF.

У меня есть мнение, что, когда условие выполнено, я хочу быть формой. Как мне это сделать без необходимости иметь один раздел с элементами страницы в форме и другой раздел с теми же элементами страницы, что и в форме?

Вот мой код для условия:

        @if (this.Model.ItemRequestStatusId == Portal.BusinessModel.Entities.ItemRequestStatusId.VendorRepReview
        && this.User.IsInRole("Vendor Rep"))
    {
        using (Html.BeginForm("Edit", "ItemRequest", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {

        <button id="btn-data-integrity-final-review" class="btn btn-warning pull-right" type="submit">Vendor Review Complete</button>
        }
    }
    else
    {
        @Html.ActionLink("Edit this request", "Edit", new { id = this.Model.Id }, new { @class = "btn btn-default pull-right" })
    }

а затем ниже этого условия, у меня есть элементы страницы/поля. Но в настоящее время они не подпадают под форму (только кнопка отправки находится в форме). Я хочу захватить поля в POST.

Теги:
entity-framework
asp.net-mvc-4

1 ответ

1
Лучший ответ

Единственный способ добиться этого - использовать javascript. Например, вы можете подписаться на событие submit этой формы и затем клонировать все поля в форму перед отправкой:

$('#formId').submit(function() {
    var inputFields = $('#someDivContainingYourInputFields').clone();
    $(this).append(inputFields);
});

Но лучшим подходом было бы просто организовать разметку таким образом, чтобы поля ввода находились внутри формы. Вы могли бы добиться этого, переместив определение формы вне условия и обернув его полями ввода. Только кнопка отправки может оставаться внутри if.

  • 0
    Итак, позвольте мне убедиться, что я понимаю ваше предложение "лучшего подхода". кнопка Изменить будет внутри формы, но POST не произойдет, потому что кнопка отправки отображается только при выполнении условия. правильно?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню