Принудительный необязательный синтаксис без Html.BeginForm / Ajax.BeginForm в частичном представлении - PullRequest
5 голосов
/ 27 января 2011

Когда я помещаю часть своей формы в частичное представление, все части формы получают беспрепятственный синтаксис, кроме элементов формы в частичном представлении.

Единственный способ, которым я нашел способ применения необструктивного синтаксиса, - это запустить другую форму внутри частичного представления.

Вид:

@using (Ajax.BeginForm("SubmitHandler", new DefaultAjaxOptions()))
{
    @Html.EditorFor(m => m.Name)
    @Html.Partial("MyPartialView", Model)
}

PartialView:

@Html.TextBoxFor(m => m.SomeContent)

Выход:

<input class="text-box single-line" data-val="true" data-val-required="This field is required." id="Name" name="Name" type="text" value="">
<input id="SomeContent" name="SomeContent" type="text" value="0">

Таким образом, только элемент ввода из представления имеет беспрепятственный синтаксис, а частичное представление не имеет ...

Есть ли способ применить необструктивный синтаксис в частичном представлении, который не требует от вас создания новой формы?

1 Ответ

4 голосов
/ 03 февраля 2011

Я действительно нашел лучшее решение! Попробовал немного покопаться в коде mvc asp.net, и класс MvcForm создает весь беспрепятственный синтаксис проверки.

так что если вы используете:

@using(new MvcForm(ViewContext))
{
}

вместо

@using(Html.BeginForm())
{
}

он по-прежнему будет применять беспрепятственный синтаксис, но не будет создавать теги html формы:)

...