Должна ли моя форма находиться внутри или снаружи моего шаблона редактора?

Я использую шаблоны редактора в ASP.net MVC. Должен ли я помещать форму внутри шаблона редактора или вне шаблона?

Пример:

Внутри

~/Представления/Продукты/Создать.cshtml

@Html.EditorForModel()   

~/Views/Products/EditorTemplates/CreateProduct.cshtml

@using(Html.BeginForm())
{
     @Html.EditorFor(model => model.Name)

     <input type="submit" value="Save" />
}

Снаружи

~/Представления/Продукты/Создать.cshtml

@using(Html.BeginForm())
{
    @Html.EditorForModel()

    <input type="submit" value="Save" />
}

~/Views/Products/EditorTemplates/CreateProduct.cshtml

@Html.EditorFor(model => model.Name)

person Dismissile    schedule 12.01.2012    source источник


Ответы (2)


Хотя ни один из способов не является "неправильным", я бы определенно сказал, что на улице лучше.

form способствует потоку вашего приложения. Когда вы пытаетесь следовать потоку, он обычно переходит в Контроллер > Вид, поэтому установка form в частичное представление ничего не даст, кроме головной боли.

В моем приложении все form всегда находятся на главной странице просмотра, поэтому все шаблоны редактора и элементы пользовательского интерфейса не знают о «потоке» приложения.

person Scott Rippey    schedule 12.01.2012
comment
Да, я больше искал наиболее разумный ответ. Ваше объяснение имеет смысл для меня. - person Dismissile; 13.01.2012

Что подходит вам больше всего. На этот вопрос нет правильных и неправильных ответов.
HtmlHelper фреймворка не ставит тег <form>, в то время как элемент управления Telerik Grid ставит <form>, поэтому я думаю, что оба варианта хороши.

Но я бы предпочел поместить <form> вне шаблона, чтобы он был более гибким, если вы поместите <form> внутри шаблона, у вас могут быть вложенные формы, которые не поддерживаются ни в одном из браузеров.

поэтому я бы сделал частичное представление для <form> и шаблон редактора для простого HtmlHelpers

person gdoron is supporting Monica    schedule 12.01.2012