Witam, walczę od dwóch dni z pewnym przypadkiem. Mam aplikację webową ASP.NET :
Wywołuję w widoku z poziomu javascriptu ajax'owo controller web api, aby otrzymać dane. Dostaję error 500 internal server error - nie znajduje mi ścieżki do kontrolera. Ponizej kod:
WIDOK
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<div id="data"></div>
<button onclick="getName()">Click me</button>
<script type="text/javascript">
function getName() {
var userFullName;
$.ajax({
method: "GET",
url: "/api/user/getFullName",
contentType: "application/json; charset=utf-8",
success: function (result) {
userFullName = result;
}
});
};
</script>
</body>
</html>
API KONTROLER:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using ChatSignalR.Services;
using System.Web;
using Microsoft.AspNet.Identity;
using System.Security.Claims;
using System.Web;
using System.Web.Http.Results;
namespace ChatSignalR.Controllers.Api
{
[Authorize]
public class UserController : ApiController
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
[Route("api/user/getFullName")]
[HttpGet]
public IHttpActionResult GetUserFullName()
{
string fullName = _userService.GetCurrentUserFullName();
return Ok(fullName);
}
}
}
W pliku WebApiConfig.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace ChatSignalR
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
Global.asax:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace ChatSignalR
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}
Nie mogę tego rozgryźć za cholerę