Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml C#不包含';内容';_Xml_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

Xml C#不包含';内容';

Xml C#不包含';内容';,xml,asp.net-mvc,asp.net-web-api,Xml,Asp.net Mvc,Asp.net Web Api,我创建了一个服务,它将用户输入作为xml接受,如果缺少任何参数,则必须返回一个视图,允许用户输入缺少的详细信息 所以我认为使用api控制器返回视图是不可能的,所以我使用了mvc控制器。但是当我读取xml时,会显示以下错误 C#不包含“Content”的定义,并且找不到接受类型为的第一个参数的扩展方法“Content”(是否缺少using指令或程序集引用?) 这是我的密码 public class MyController : Controller { public IHttpAction

我创建了一个服务,它将用户输入作为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;
    }
}
我的问题是

1.如何解决此错误


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

请注意,
内容在
ApiController的
HttpRequestMessage
中可用,而不是在
Controller的
HttpRequestBase
中可用

如果要使用
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;

请注意,
内容
可在
ApiController的
HttpRequestMessage
中找到,而不是在
Controller的
HttpRequestBase
中找到

如果要使用
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;

您的项目中是否添加了
System.Web
&
System.Net.Http
程序集?是的,我已经添加了@PranavSinghdo这两个@PranavSingh。您的项目中添加了
System.Web
&
System.Net.Http
程序集?是的,我已经添加了@PranavSingh这两个@PranavSingh