使用,这段代码我将变量发送到mvc,但是当我重新编译这段代码时,网页浏览器给我一个错误(404) - >没找到,我相信一切都很好,但有了这个,我不确定 - > data:JSON.stringify(idInfo)
Ajax的Jquery的
function first(idInfo)
{
$.ajax({
url: "Information/getInformation",
type: "POST",
**data: JSON.stringify(idInfo),**
dataType: "json",
success: function (data) {
...
}
});
对于这段代码,我需要发送这个varieble。
C#
[HttpPost]
public information getInformation(int information)
{
...
}
感谢您的评论和建议。 我希望我能充分描述我的问题......
答案 0 :(得分:0)
尝试添加网址斜杠的开头
url: "/Information/getInformation",
并像这样更改data
:
data: JSON.stringify( { information : idInfo }),
我认为您的Information
是Controller
,getInformation
是Action
,返回ActionResult
。
答案 1 :(得分:0)
首先,确保正确配置路由。考虑到您的API控制器如下所示:
public class InformationController : ApiController
{
[HttpPost]
public information getInformation(int information)
{
...
}
}
在这种情况下,您可以通过以下方式配置路由:
public void Configure(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "PostInformationWithId",
routeTemplate: "Information/getInformation",
defaults: new { controller = "Information", action = "getInformation" }
);
}
否则(如果您使用的是默认路由),您的请求网址可能需要api/
前缀。
此外,您是通过请求正文idInfo
请求发送POST
,因此您需要将information
参数标记为FromBody
或通过值传递查询字符串:
使用FromBody
属性:
public information getInformation([FromBody]int information)
{
..
}
通过query-string传递参数:
$.ajax({
url: "Information/getInformation?information=" +
encodeURIComponent(idInfo),
type: "POST",
dataType: "json",
success: function (data) {
...
}
});
希望这有帮助。