我创建了一个接受用户输入为xml的服务,如果缺少任何参数,我必须返回一个视图,允许用户输入缺失的详细信息。
所以我认为使用api控制器返回视图是不可能的,所以我使用了mvc控制器。但是当我读取xml时会显示以下错误。
C#不包含'内容'的定义没有扩展方法'内容'可以找到接受类型的第一个参数(你是否缺少using指令或汇编引用?)
这是我的代码
public class MyController : Controller
{
public IHttpActionResult MyService([FromUri] TestProperty testProperty)
{
string DataXML = this.Request.Content.ReadAsStringAsync().Result;
}
}
我的问题是
1.如何解决这个错误?
2.有没有其他方法可以使用api控制器来满足我的需求?将视图返回给用户并接受xml。
答案 0 :(得分:3)
请注意,cr.execute("SELECT id FROM stock_move WHERE origin=%s", (po_name,))
s_moves = cr.fetchall()
return {
'name': _('Name'),
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'Model.Name',
'view_id': False,
'views': [(False,'tree'),(False,'form'),],
'domain': [('id', 'in', s_moves)]
'type': 'ir.actions.act_window',
}
Content
HttpRequestMessage
不在ApiController
HttpRequestBase
Controller
如果您想使用Request.Content.ReadAsStringAsync()
,您的控制器应继承自ApiController
(Web API),而不是继承自Controller。
如果您想阅读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;