为什么我的ASP.NET Core 2方法不能返回TwiML?

时间:2018-02-13 18:17:08

标签: c# twilio asp.net-core-2.0 twiml

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

  

"非可调用成员' TwiML'不能像方法一样使用。"

以下是方法:

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

   return TwiML(response);
}

错误发生在这里:

return TwiML(response);

我见过的所有代码示例都告诉我以这种方式返回TwiML,但出于某种原因,我无法做到。

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:0)

可能与.net nuget有关,但是在Visual Studio识别Twilio.Aspnet命名空间之前,我不得不卸载/重新安装twilio软件包。

答案 2 :(得分:-1)

由于TwiML只是XML,我会考虑返回ContentResult

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

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

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