搜索结果我正在用javascript做一些事情我需要执行一些操作d后端我决定制作apiweb UN,问题来自我发出ajax请求和返回时(在c#中制作)甚至无法收集正在运行的数据方法。
他做的第一件事是路由Web API para Calling Methods Specific Power,我在WebConfig中做了如下:
<code>
config.Routes.MapHttpRoute(
name: "DefaultApiRouted",
routeTemplate: "api/{controller}/{action}/{param}",
defaults: new { param = RouteParameter.Optional }
);</code>
在这个操作之后我决定在ValuesController中创建一个特定的方法,它继承自ApiController:
<code>
[HttpGet]
[HttpPost]
public IHttpActionResult Prueba([FromBody]Persona data)
{
return Ok(new { message = "Llego" });
}
public class Persona
{
public string username { set; get; }
public string email { set; get; }
public string password { set; get; }
}</code>
我浏览了很多页面并尝试了很多例子并且没有让那个人进入一个值,该方法被执行但是那个人是null,而我还尝试过ICustomFormater,string等等。我已经实现了相同的结果,该方法被执行但没有取输入值。
从Javascrpt发送如下
<code>var Persona = new Object()
Persona.username ="Pepe";
Persona.email ="Pepe@pepe.com";
Persona.password ="12345";
$.ajax({
url: "http://localhost:5311/api/values/Prueba",
contentType: "application/json",
dataType: "json",
data: Persona,
type: 'POST',
success: function (json) {
alert(json.message)
},
error: function (xhr, status) {
alert("He petao")
},
complete: function (xhr, status) {
}
});</code>
El resultado que me envia la webApi hacia el js si la recibo bien y en formato JSOn pero es que a la inversa no soy capaz de recoger el valor,si alguien puede ayudarme seloagradeceríamoreo。
答案 0 :(得分:0)
您的路线配置看起来正确
Pruebla
中的ValuesController
操作只应使用一个Http属性进行修饰。在这种情况下应该是[HttpPost]
...
[HttpPost]
public IHttpActionResult Prueba([FromBody]Persona data)
{
return Ok(new { message = "Llego" });
}
您可以在JavaScript中创建Persona
,如...
var persona = {
username: "Pepe",
email: "Pepe@pepe.com",
password: "12345"
};
对服务的调用会略有改变......
$.ajax({
url: 'http://localhost:5311/api/values/Prueba',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(persona),
type: 'POST',
success: function (json) {
alert(json.message)
},
error: function (xhr, status) {
alert("He petao")
},
complete: function (xhr, status) {
}
});