Вопрос

Видя, что наша команда поддерживает интранет, который имеет клиенты пользователям, у которых гарантированно включен javascript, мы знаем, что можем вмешаться и начать использовать jQuery более "тщательно".Наша система очень большая, поэтому, несмотря на то, что мы используем области в нашем приложении ASP.NET MVC, само количество страниц для добавления, редактирования, удаления и просмотра наборов данных в каждой подсистеме области действительно довольно велико.Подсистема области может содержать примерно двадцать таблиц данных.Если имеется двадцать таблиц данных, и у вас есть отдельные страницы для добавления, редактирования, удаления и просмотра их, это означает, что всего имеется 60 страницы.Теперь представьте, что в каждой области есть двадцать подсистем, тогда в одной области будет 20 * 60 страниц, а у нас в Интрасети примерно 15 областей.Вы понимаете, в чем дело, это очень важно.

Переходя к моей реальной точке зрения, я хочу сократить это, используя возможности jQuery для размещения таблицы данных на странице, нажимая "удалить", и это выдает мне диалоговое окно удаления с кнопкой подтверждения, которое затем отправит форму, перенаправит на правильное действие и выполнит работу за меня.Теперь мне нужны некоторые рекомендации в следующих областях:

  1. Если бы я хотел удалить без обратной публикации вообще, используя ASP.NET MVC, каков процесс для этого?Это включает в себя нажатие кнопки удалить, ее отключение и проверку возможности удаления (отношения FK должны обрабатываться правильным образом), затем, если возможно, удаление ее и удаление строки из таблицы в представлении, и все это без обновления страницы.
  2. Как мне вызвать действие удаления из асинхронного процесса с помощью jQuery?Разумно ли это делать?Обычно мы используем Html.ActionLink.Должен ли я был бы завернуть это в форму?
  3. То же самое касается редактирования и обновления, опять же, каков наилучший способ сделать это?

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

Это было полезно?

Решение

Я работаю над проектом, который использует ссылки для запуска действий удаления через AJAX POST (без обратной передачи).

$("a.deleteLink").click(function(event)
{
    event.preventDefault();
    if (confirm("Are you sure you want to delete this section?"))
    {
        //TODO Display processing indicator

        var myId = /* id of element */ ;

        $.post("/Section/Delete", { id: myId }, function(data)
        {
            if (data == "Success")
            {
                //handle success
                //TODO Fade out element using .fadeOut()
            }
            else
            {
                //handle error
            }
        });
    }
});

Метод контроллера находится в /Controllers/SectionController.cs. Принимает только POST, как и любое действие, которое изменяет базу данных.

    private SectionRepository secRepo = new SectionRepository();

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(long id)
    {
        Section sec = secRepo.GetById(id);

        secRepo.Delete(sec);
        secRepo.Save();

        return Content("Success");
    }

Другие советы

Только что закончил смотреть видео о некоторых шаблонах, которые вы можете получить для ASP.NET MVC с Subsonic.Хотя я до сих пор не реализовал это и даже не опробовал, это выглядит невероятно!Взгляните здесь.


Я не уверен, если это является целесообразным вариантом для своего или нет, но мы недавно возникла необходимость похож на ваш, и мы выпускаем наше основное приложение в качестве приложения ASP.NET в MVC (используя jqGrid), а затем дополнительное приложение ASP.NET Веб-форм для наших функций администрирования, использующее динамические данные.Это сработало чрезвычайно хорошо и сэкономило нам массу времени.

Это также выглядит как DynamicData и MVC они появятся в одном из следующих выпусков.

Другое чтение...
* Дэвид Хейден
* rbqsoft
* Острая архитектура Wiki

У Чеда Майерса есть хорошая статья об этом.

Также один от Dino Esposito.

Если вы также хотите бросить диалог jQuery на вечеринку, это Пост Рикардо Ково отлично справляется со своей задачей

введите описание изображения здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top