public voID Post([FromBody] string value){ Repository.Save(value);}
我像这样构建我的表单:
@using (AJAX.BeginForm(new AJAXOptions { httpMethod = "Post",Url = "/API/MyController"})){ <input type="text" name="value" value="" /> <input type="submit" value="Post" />}
请求被路由到控制器,但由于某种原因,该值始终为null.我已尝试使用和不使用[FromBody]属性.
我显然可以在URL中附加一个值查询字符串参数,但我真的想弄清楚如何使用简单类型发布表单数据(而不是创建我自己的DTO类型).
谢谢!
@H_301_4@解决方法 默认情况下,Web API尝试从请求URI中获取简单类型. FromBody属性告诉Web API从请求主体读取值.Web API最多读取一次响应主体,因此只有一个 *** 作参数可以来自请求主体.如果需要从请求正文中获取多个值,请定义复杂类型.
其次,客户端需要使用以下格式发送值:
=价值
而不是这样的:
值= FOO
所以,如果你发布你的数据,如$.post(‘/ API / myAPIcontroller’,{“”:$(‘#myinput’).val()});它应该工作得很好,如果你想发送一个简单类型的数组,只需发送这样的数据$.post(‘/ API / myAPIcontroller’,{“”:[“更新一个”,“更新两个”,“更新三个“]});
如果您使用fiddler,只需将= John Smith添加到请求正文中,并确保您拥有正确的内容类型,如下所示:Content-Type:application / x-www-form-urlencoded.
@H_301_4@ @H_301_4@ @H_301_4@ @H_301_4@ 总结以上是内存溢出为你收集整理的使用BeginForm将表单数据发布到ASP.NET MVC API控制器全部内容,希望文章能够帮你解决使用BeginForm将表单数据发布到ASP.NET MVC API控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)