【问题标题】:Returning a value from Task<IActionResult>从 Task<IActionResult> 返回一个值
【发布时间】:2019-08-14 10:12:38
【问题描述】:

当我单击批准按钮时,我有这个 OnGet 方法在 razorpage 中运行。

正如您在下面看到的,实际运行的代码位于实用程序类中,并且由于我不想破坏线程过程,实用程序类方法也返回任务

当执行返回时,我将“消息”写入浏览器。我的问题是它不是我想为用户显示的 ID。它是 sql 中的另一列,在实用程序类中可用。

所以我的问题是如何更改我的调用以从 Utility 类方法返回值?

public async Task<IActionResult> OnGetApproveAsync(int id) {

        try {
            await Utils.ApproveOrder(Request, HttpContext, _context1, _context2, _cache, id);
            Message += "Order #" + id + " Approved\n";
            return Redirect("~/Orders/Orders");

        } catch (Exception e) {
            Message += e.StackTrace.ToString();
            return Redirect("~/Orders/Orders");
        }
    }

【问题讨论】:

    标签: entity-framework asp.net-core razor-pages


    【解决方案1】:

    Utils.ApproveOrder 更改为返回Task&lt;Utility&gt; 并更新型号代码

    public async Task<IActionResult> OnGetApproveAsync(int id) {
        try {
            Utility util = await Utils.ApproveOrder(Request, HttpContext, _context1, _context2, _cache, id);
            //use util
            //..
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2019-07-30
      • 2021-07-06
      • 1970-01-01
      • 2019-06-17
      相关资源
      最近更新 更多