C# 不包含“内容”的定义

shr*_*thi 1 xml asp.net-mvc asp.net-web-api

我创建了一个接受用户输入为 xml 的服务,如果缺少任何参数,我必须返回一个视图,允许用户输入缺少的详细信息。

所以我认为使用 api 控制器返回视图是不可能的,所以我使用了 mvc 控制器。但是当我读取xml时显示以下错误。

C# 不包含“Content”的定义,并且找不到接受第一个类型参数的扩展方法“Content”(您是否缺少 using 指令或程序集引用?)

这是我的代码

public class MyController : Controller 
{
   public IHttpActionResult MyService([FromUri] TestProperty testProperty)
    {
       string DataXML = this.Request.Content.ReadAsStringAsync().Result;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是

1.如何解决这个错误?

2.有没有其他方法可以使用api控制器来满足我的需求?将视图返回给用户并接受 xml。

PSK*_*PSK 5

请注意,Content是可用HttpRequestMessageApiController不在HttpRequestBaseController

如果你想使用Request.Content.ReadAsStringAsync()你的控制器应该继承自ApiController(Web API)而不是控制器。

如果你想阅读 MVC 控制器中的内容,你可以尝试如下。

string content = "";
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
 using (var reader = new StreamReader(
          Request.InputStream, System.Text.Encoding.UTF8, true, 4096, true))
      {
         content = reader.ReadToEnd();
      }
 //Rest
 System.Web.HttpContext.Current.Request.InputStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)