【问题标题】:calling action method from another action从另一个动作调用动作方法
【发布时间】:2016-06-05 18:53:14
【问题描述】:

我在控制器 A 中有一个 put 方法,我在其中传入 json 对象并根据我的输出在 dynamo db 中进行一些检查

[HttpPut]
public async Task<IActionResult> ProcessEmployee([FromBody]EmployeeModel em) 

我需要在控制器 B 中发帖

[HttpPost]
public async Task<IActionResult> CreateEmployee([FromBody]EmployeeModel em)

或

执行控制器 B

[HttpPut]
public async Task<IActionResult> UpdateEmployee([FromBody]EmployeeModel em) 

我如何重定向到控制器 B 中的操作,并传递我的 json 对象,该对象我传递给控制器​​ A。

感谢阅读。

【问题讨论】:

    标签: c# asp.net-mvc api dnx50


    【解决方案1】:

    控制器将调用重定向到其他控制器并不是最佳做法。
    如果您想在控制器 A 处理完 JSON 对象后在数据库中创建/更新员工记录,您可能需要为数据库操作实现 DAL(数据访问层),该操作将从控制器 A 调用。
    DAL 接口应该非常简单:

    void CreateEmployee(EmployeeModel em);
    void UpdateEmployee(EmployeeModel em);
    

    【讨论】:

    • 我当前的实现是使用 DAL,我有 1 个 put 进行处理,然后调用代码来插入或更新。我不确定使用redirecttoaction 是否会是一个更好的实现v/s 有1 个放置来处理然后创建或更新。
    • 重定向会在控制器之间创建依赖关系,这是您绝对希望避免的,它更适合 API 弃用等。因此,我认为最好的方法是使用 DAL 保持代码不变。
    • 感谢您的意见,我将在 DAL 中保留我的更改,再次感谢 :)
    猜你喜欢
    • 1970-01-01
    • 2017-11-17
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多