C# 如何显示mi异步任务<;对象>;回到我的视野?

C# 如何显示mi异步任务<;对象>;回到我的视野?,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我对ASP.NETCore非常陌生,我正在尝试将我的异步任务筛选器返回显示到我的视图中,但不确定如何 这是我的控制器代码: public class OrderNumberController : Controller { public async Task<IActionResult> Index(string orderNumber) { string[] locales = HPMSConstants.System

我对ASP.NETCore非常陌生,我正在尝试将我的异步任务筛选器返回显示到我的视图中,但不确定如何

这是我的控制器代码:

public class OrderNumberController : Controller
    {
        public async Task<IActionResult> Index(string orderNumber)
        {
            string[] locales = HPMSConstants.System.SupportedLocales.OrderBy(l => l).ToArray();
            ViewBag.Locales = locales;
          

            return View();
        }


        [HttpPost]
        public async Task<PaymentGatewayTransactionManagerService.PaymentGatewayRecord> Filter(string orderNumber)
        {
            var result = await GetOrders(orderNumber);
            
            return result;
        }

        private async Task<PaymentGatewayTransactionManagerService.PaymentGatewayRecord> GetOrders(string orderNumber)
        {
            var httpBinding = new System.ServiceModel.BasicHttpBinding();
            // var address = new System.ServiceModel.EndpointAddress("http://pgtms.local.myherbalife.com/PaymentGatewayTransactionManager/Service.svc");
            //var address = new System.ServiceModel.EndpointAddress("http://zus2q1ssb000000.hrbl.net:8330/Service.svc");
            var address = new System.ServiceModel.EndpointAddress("http://zuswqa4svc01:8330/Service.svc");
            PaymentGatewayTransactionManagerClient clientService = new PaymentGatewayTransactionManagerClient(httpBinding, address);

            var result = await clientService.GetPaymentGatewayRecordAsync(orderNumber);

            return result;
        }
公共类OrderNumber控制器:控制器
{
公共异步任务索引(字符串orderNumber)
{
string[]locales=HPMSConstants.System.SupportedLocales.OrderBy(l=>l.ToArray();
ViewBag.Locales=Locales;
返回视图();
}
[HttpPost]
公共异步任务筛选器(字符串orderNumber)
{
var结果=等待获取订单(订单号);
返回结果;
}
专用异步任务GetOrders(字符串orderNumber)
{
var httpBinding=new System.ServiceModel.BasicHttpBinding();
//var address=新的System.ServiceModel.EndpointAddress(“http://pgtms.local.myherbalife.com/PaymentGatewayTransactionManager/Service.svc");
//var address=新的System.ServiceModel.EndpointAddress(“http://zus2q1ssb000000.hrbl.net:8330/Service.svc");
var address=新的System.ServiceModel.EndpointAddress(“http://zuswqa4svc01:8330/Service.svc");
PaymentGatewayTransactionManagerClient客户端服务=新的PaymentGatewayTransactionManagerClient(httpBinding,地址);
var result=await clientService.GetPaymentGatewayRecordAsync(订单号);
返回结果;
}
我想我明白你的要求了。在后两种方法中,你返回了一个
任务
,其中“某物”是在等待异步方法调用的结果后得到的结果。第一种方法是显示返回视图的MVC视图控制器方法。结果表明该方法编码错误。应该是这样的(忽略与问题无关的前两行)

这不需要执行
异步任务
,因为您没有在所示的方法中等待任何异步方法。
View()
Microsoft.AspNetCore.Mvc.Controller
上的一个方法,它不是异步的,并返回一个扩展ActionResult的
Microsoft.AspNetCore.Mvc.ViewResult


因此,简单的回答是,只需确保您的方法返回它在方法签名中声明的值,并确保不要忽略Visual Studio或Visual代码中的警告和错误。如果您向方法添加async,但没有等待正文中的任何内容,则会出现警告。如果尝试重新添加,则会出现错误打开一个
任务
,但是你却在重复一些实现
IActionResult
的东西。

为什么它必须涉及3种方法?你真的认为我们需要它们来猜测你的确切问题吗?我想这取决于你想如何在你的视图中显示这些信息。如果用户已经在页面,您希望他们能够在仍然在该页面上的情况下获取该数据,然后听起来您将向该控制器操作发出AJAX请求。
public IActionResult Index(string orderNumber)
{
    string[] locales = HPMSConstants.System.SupportedLocales.OrderBy(l => l).ToArray();
    ViewBag.Locales = locales;
  

    return View();
}