我无法从Angular Service调用MVC APIController。任何人都可以帮忙。谢谢。
我的Route.Config如下所示。我允许所有路线。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{*anything}", //"{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
当我从应用程序调用帖子时,它的工作也没有发生任何错误。
forms.service.ts文件中的代码
createForm(post: myForm) {
console.log('Actual object: ' + JSON.stringify(post));
console.log(JSON.stringify(post));
return this._http.post(this._posturl, JSON.stringify(post)).map(response => response.json());
}
API控制器的代码
public class MinPostController : ApiController
{
public MinPostController()
{
}
[System.Web.Http.HttpPost]
public ActionResult CreateForm([FromBody] PostFormModel input)
{
//Check if the post is hitting.
bool status = false;
}
}
当我使用Fiddler发布Json时,它可以正常工作,如下所示。请找到下面的图片。
答案 0 :(得分:0)
你可以在标题中添加Content-Type
,看看有什么不同吗?
return this._http.post(this._posturl, JSON.stringify(post), this.getRequestOptions())
.map(response => response.json())
.catch(this.handleError);
private getRequestOptions() {
return new RequestOptions({
headers: new Headers({
"Content-Type": "application/json"
})
});
}
private handleError(error: Response) {
console.error(error);
}
答案 1 :(得分:0)
这就是答案。我必须创建一个observable然后订阅它。