在不同的 MVC 项目层中编辑模型

Posted

技术标签:

【中文标题】在不同的 MVC 项目层中编辑模型【英文标题】:Edit Models in different MVC project layer 【发布时间】:2011-07-15 15:14:03 【问题描述】:

我有一个名为“SampleProject”的 ASP.NET MVC3 解决方案。我的解决方案中有 4 个项目。

解决方案的项目名称是

SampleProject.Data(包含实体类、DAL 类和过滤器类)

SampleProject.Service(类似于标准 ERP 中的 BLL)

SampleProject.Tests(测试项目)

SampleProject.Web(包含控制器和视图)

我正在从我的控制器中调用服务类。服务类调用数据类,数据类执行数据库操作。

我已经完成了创建、列表和详细信息部分。现在我陷入了编辑部分。没有使用我的架构的示例(NerdDinner、MVCMusicStore 等)。在提供的示例中(NerdDinner、MVCMusicStore 等或在 ASP.NET 网站教程中),它们只是使用了我不想使用的内置 UpdateModel 方法。我想从我的视图中手动获取模型对象并将其发送到我的数据层进行更新。

我的问题是,如何通过不同的项目层更新模型?

【问题讨论】:

或许你可以举个例子…… 【参考方案1】:

我解决了这个问题。代码如下。仅供参考,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();
        
    

视图引擎准备对象(在我的例子中,它是 Restaurant 类型的对象),它使用新值继承并发送回控制器。这是我的理解。

【讨论】:

以上是关于在不同的 MVC 项目层中编辑模型的主要内容,如果未能解决你的问题,请参考以下文章

项目小结训练BERT模型加入到深度学习网络层中——keras_bert库使用填坑指南

项目小结训练BERT模型加入到深度学习网络层中——keras_bert库使用填坑指南

如何在mvc中的模型中添加多个项目

MVC 3 在 IEnumerable 模型视图中编辑数据

在 MVC4 中的单个视图中访问多个模型中的项目

java的mvc模式中bean.dao.service三层中都放啥东西啊?能具体说说吗?