Это нормально для отображения другого представления в EditorTemplate в ASP.NET MVC - PullRequest
0 голосов
/ 24 мая 2011

Мне нужно отобразить список комментариев в представлении.Я создал шаблон редактора для типа комментариев моих комментариев.Я звоню:

@Html.EditorFor(x => x.Comments)

Чтобы просмотреть и обработать индивидуальные комментарии.

Теперь мне также нужно добавить комментарий в список.После добавления в БД мне нужно использовать jQuery, чтобы добавить новый вид комментария к текущему списку.

Должен ли я создать другое частичное представление, чтобы отразить представление EditorTemplate ... Или просто вызвать Html.RenderPartial для нового представления в шаблоне редактора?

Надеюсь, что это имеет смысл..

Ответы [ 3 ]

1 голос
/ 24 мая 2011

Каждое представление (частичное или нет) имеет свое собственное вспомогательное свойство html.Используя это свойство, вы можете и вызывать частичные представления на произвольную глубину.В вашей ситуации я бы предложил создать шаблон отображения для комментариев, потому что вы отображаете их, а не редактируете.это не создаст никакой разницы с точки зрения функциональности, но это нарушает соглашение.Например, это ваш шаблон отображения для комментариев, принимающих IEnumerable

<%foreach(var x in Model){%>

<div> @x.CommentText</div>

<%} %>

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

<%Html.BeginForm();%>
<div><%:Html.HiddenFor(x=>x.CommentID)%>
<%:Html.LabelFor(x=>x.CommentText)%>
</div>
<div>
<%:Html.TextAreaFor(x=>x.CommentText)%>
<input type='submit' value='save'/>
<%:Html.Endform();%>

Я бы лично назвал это представление (отображение формы) из основного представления (из которого я назвал Html.DisplayFor (x => x.Comments)), потому что это проблема, отдельная от отображения спискакомментарии.

0 голосов
/ 24 мая 2011

Вы можете быть ленивым и использовать один и тот же шаблон, предоставляя модель IEnumerable, содержащую один комментарий.

jQuery предоставляет способ выбрать фрагмент из ответа AJAX.См. «Загрузка фрагментов страницы» здесь .Просто добавьте селектор для одного комментария и добавьте его в список.

0 голосов
/ 24 мая 2011

Я бы просто создал частичное представление с:

@model SomeModel

@Html.EditorForModel()

и используйте это, если мне нужно return PartialView() из метода действия.

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