【发布时间】:2017-07-10 03:41:54
【问题描述】:
我可以通过调用我的 Web API 控制器函数让 $http.get() 正常工作,但是当我尝试执行 post() 时,它会给出 404。
角度:
// call API to update
$http.post("api/Store/UpdateField", $httpParamSerializer({ ID: rowEntity.ID, columnName: colDef.name, value: newValue}))
.then(function (response) {
},
function (error, status) {
});
C#:
[RoutePrefix("api/Store")]
public class StoreController : ApiController
[Route("UpdateField")]
[HttpPost]
public async Task<bool> UpdateField(int ID, string columnName, string value)
{ // stuff here }
}
// routes
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "API1",
routeTemplate: "api/{controller}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "API2",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Remove the XML formatter so json is returned instead
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.Add(config.Formatters.JsonFormatter);
}
【问题讨论】:
-
请添加您的
global.asax。 -
你想要路线吗?
-
这可能是服务器接受的动词的问题,请检查您的 web.config 文件。
-
找到了答案。似乎您必须让 C# 函数采用一个选项而不是多种原始类型。然后在javascript端对数据进行字符串化:stackoverflow.com/questions/39904610/…
标签: c# angularjs asp.net-web-api2