【问题标题】:Calling a method in another class from the controller class从控制器类调用另一个类中的方法
【发布时间】:2018-03-07 19:13:25
【问题描述】:

我是 asp.net mvc 项目的新手。我想从 Home Controller 中的 ActionResult Index() 方法调用另一个类中的方法。

例如:

public class RestCall{
  public async Task<ActionResult> RestCall(string a, string b){
    //......
  }
}

我想从下一个类中的 index 方法访问 RestCall() 方法,并且我想将 RestCall 类的输出获取到 home 控制器中的 index() 方法。

public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
    }

(我正在使用剃刀语法。)有人可以建议一种方法吗?

【问题讨论】:

  • 从技术上讲,您的问题没有答案。除非该方法是静态的,否则您不能调用另一个类中的方法。您只能在该类的 instance 上调用该方法。通常,您可以通过调用 var x = new RestClass() 后跟 x.RestClass("foo", "bar")` 来做到这一点,但是如果您有一个具有相同名称的方法的类,它不会编译构造函数,这是行不通的。请将您的示例更改为将编译的代码。

标签: c# asp.net-mvc razor


【解决方案1】:

Index() 的定义更改为异步并等待RestCall

public async Task<ActionResult> Index()
{
   RestCall rc = new RestCall();
   //rename method as @NightOwl88 says
   var result = await rc.DoRestCall("somestring", "somestring").ConfigureAwait(false); 
   // do something with result
   return View();
}

【讨论】:

    猜你喜欢
    • 2012-02-08
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多