为什么我的 ASP.NET 核心 2 方法 return TwiML 不能?

Why can't my ASP.NET Core 2 method return TwiML?

我有一个 ASP.NET Core 2 应用程序,我正在尝试将对 Twilio 号码的呼叫转发到另一个号码。当我尝试 return TwiML 时,我收到一条错误消息:

"Non-invocable member 'TwiML' cannot be used like a method."

方法如下:

[HttpPost]
public TwiMLResult ForwardCall(string called)
{
   var response = new VoiceResponse();
   response.Dial(newNumber);

   return TwiML(response);
}

错误发生在这里:

return TwiML(response);

我看到的所有代码示例都告诉我 return TwiML 这种方式,但由于某些原因,我无法做到。

问题是控制器没有继承自 TwilioController。一旦我的控制器继承自 TwilioController,错误就消失了。

因为 TwiML 只是 XML,我会考虑返回一个 ContentResult

ContentResult对象是一个ActionResult,returns一个简单的字符串。它还支持设置将与响应一起返回的 Content-Type

[HttpPost]
public ContentResult ForwardCall(string called)
{
   var response = new VoiceResponse();
   response.Dial(newNumber);

   return new ContentResult(TwiML(response), "text/xml");
}

可能更多 .net nuget 相关,但在 visual studio 识别 Twilio.Aspnet 命名空间之前我必须 uninstall/re-install twilio 包。