Редактировать модели в разных слоях проекта MVC - PullRequest
0 голосов
/ 15 марта 2011

У меня есть решение ASP.NET MVC3 с именем «SampleProject». У меня есть 4 проекта в решении.

Имена проектов решения

SampleProject.Data (содержит классы сущностей, классы DAL и классы фильтров)

SampleProject.Service (что-то вроде BLL в стандартной ERP)

SampleProject.Tests (тестовый проект)

SampleProject.Web (содержит контроллеры и представления)

Я звоню в классы обслуживания с моих контроллеров. Классы обслуживания вызывают классы данных, а классы данных выполняют операции с базой данных.

Я сделал часть создания, списка и деталей. Теперь я застрял в части редактирования. Ни один из примеров (NerdDinner, MVCMusicStore и т. Д.), Использующих мою архитектуру. В предоставленных примерах (NerdDinner, MVCMusicStore и т. Д. Или в учебниках по веб-сайтам ASP.NET) они просто используют встроенный метод UpdateModel, который я не хочу использовать . Я хочу вручную получить объект модели из моего представления и отправить его на уровень данных для обновления.

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

1 Ответ

0 голосов
/ 15 марта 2011

Я решил проблему.Вот код. Просто для справки, CResult - это класс, который содержит свойства IsSuccess (bool), Message (string).

CResult oCResult;
    [HttpPost]
    public ActionResult Edit(Restaurant model)
    {

        try
        {
            oCResult = restaurantService.Update(model);
            if (oCResult.IsSuccess)
            {
                return RedirectToAction("Index");
            }
            return View("Error");
        }
        catch
        {
            return View();
        }
    }

Механизм представления подготавливает объект (в моем случае этоРесторанный тип объекта) он наследует с новыми значениями и отправляет обратно контроллеру.это мое понимание

...