Лучший способ сделать ListView в ASP.NET MVC?

1

в основном, как мне это сделать теперь, когда использование элемента управления asp: listview не может быть и речи?

Я переношу из webforms в mvc, а предыдущая реализация была в <asp:ListView...>, так как мне теперь это делать с точки зрения лучшего пользовательского опыта для пользователя? т.е.: мне нужно будет все ajax.

спасибо

Теги:
asp.net-mvc

1 ответ

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

Теперь вы должны использовать стандартный список. Если вам нужно вернуть список с вашего контроллера, вы вернете SelectList [я думаю, что он].

Чтобы ajax выбрать список, вы можете использовать say jQuery, чтобы добавить клик и изменить события, которые затем вызовут действия в вашем контроллере.

Edit

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

Другим способом может быть создание пары PartialView. Первые петли через вашу коллекцию, а вторая отображает строку. Последний мог бы сказать кнопки или флажок или что-то еще.

Затем вы снова отправляете назад, через ajax, в результат действия, вносите изменения и возвращаетесь.

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

изменить 2 если вы хотите код, оставьте комментарий, и я предоставлю

изменить 3

Там есть куча сеток jQuery, просто google.

Что касается частичных представлений, что-то вроде этого будет работать;

Частичный вид HTML 1 называется BenefitList;

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IQueryable<Models.Benefit>>" %>

<% foreach(Benefit benefit in Model){ %>
    <% Html.RenderPartial("Benefit", benefit); %>
<% } %>

HTML Partial View 2;

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.Benefit>" %>

<fieldset class="Benefit benefit" id="<%= Model.Id %>">
    <legend><label class="Title"><%= Html.Encode(Model.Title) %></label> <a class="BenefitDescriptionView" href=".">View</a><a class="BenefitDescriptionEdit" href=".">Edit</a></legend>
    <div class="BenefitDescription hidden">
        <%= Html.Encode(Model.Description) %>
    </div>
</fieldset>

Некоторое jQuery для вас, чтобы сделать сообщение в результате действия;

 function jQueryDeleteBenefit() {
     $.post("/Home/jQueryDeleteBenefit", { Id: YOURID },
        function(NEWHTML) {
            $('.EditProductContainer').html(NEWHTML);
        });
 }

Результат действия;

    [AcceptVerbs(HttpVerbs.Post)]
    public void jQueryDeleteBenefit(int id
    {
      //delete item

      return PartialView("BenefitList", AllMyBenefits);
    }
  • 0
    Разве список не является списком, доступным для выбора внутри расширенного списка? это не то, что я после ... просто хочу отобразить записи БД (комментарии) с возможностью добавлять / редактировать / удалять и т. д.
  • 0
    см. мое редактирование для более
Показать ещё 9 комментариев

Ещё вопросы

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