CQS和ASP.NET MVC操作
阅读有关CQS原理的人知道:
CQS声明每种方法都应该
要么是执行一个的命令
操作或返回数据的查询
给来电者,但不是两者。
说到ASP.NET MVC动作,CQS是否表明我们不应该有这样的动作?
public PartialView InsertOrder(Order order)
{
OrderService.InsertOrder(order);
return PartialView("OrderDetails", order);
}
此方法正在更改系统的状态并返回当前状态。如果在这里应用CQS,我们应该有两个单独的操作:一个用于插入新订单,一个用于获取系统系统(如果第一个Action成功完成,应该从客户端调用)。但是,这使编程变得复杂。
我想知道你对此的看法。
MOSH
没有找到相关结果
已邀请:
4 个回复
抹持奠糙驰
。所以,在某种程度上,在你的动作中执行的mvc实际上是遵循这种模式的loosley(InsertOrder不会尝试呈现任何有状态信息,纯粹处理订单对象)。 我建议你看一下asp.net mvc的最佳实践,这是基于返回一个actionresult(或部分,contentresult等等)的fundementally。这种模式旨在简化范式,以统一和普遍接受的方式促进生产力。 当然,您可以使用操作返回值为插入/更新/删除方案生成成功或失败,然后根据这些返回值请求部分视图。但是,我个人并不认为我会从这种方法中获得太多的价值,因为MVC中的控制器关注的是通过操作结果应该返回哪个视图的逻辑。 希望这可以帮助 吉姆
稳赣苍卯改
对于AJAX和部分视图,这可能不是最佳策略,因为Post / Redirect / Get解决的问题并不真正相关,并且重定向可能很棘手。
芦歉竭皑
诫商
对真实服务有一个抽象)。控制器操纵模型并决定渲染哪个视图并将此模型传递给视图。