我想知道什么是正确的方式访问一个ASP.Net Web Api在我的当前上下文中的JavaScript文件的MVC控制器类中的HTTP GET方法。以下片段位于document.ready主体的函数内。
的Javascript:
var Id1 = $('#EmployeePrimaryId').val();
var Id2 = $('#EmployeeSecondaryId').val();
var url = "api/employees/getemployeename?Id1=" + Id1 + "?Id2=" + Id2;
$.get(url, function (data) {
$('#EmployeeName').val(data);
});
我目前收到的$不用彷徨404错误,并认为它可能有一些做的路由。这篇文章中的'扩展示例':http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection解释了当适当的路由放置时,查询字符串参数被选中,我不太确定路由模板中是否需要一个可选的Id,因为这些示例显示的控制器方法只有重载一个身份证,所以我包括两条路线,都没有工作。此外,控制器类实现ApiController类。
网络API控制方法:
[System.Web.Http.HttpGet]
public string GetEmployeeName([FromUri]int Id1, int Id2)
{
var data = _context.Employees
.Where(x => x.EmployeePrimaryId == Id1
&& x.EmployeeSecondaryId == Id2)
.Select(x => x.EmployeeName);
return data;
}
RouteConfig类:
private static void RegisterApiRoutes(RouteCollection routes)
{
routes.MapHttpRoute(
name: "Employees",
routeTemplate: "api/{controller}/{action}/",
defaults: new { controller = "Employees",
action = "GetEmployeeName",}
);
routes.MapHttpRoute(
name: "Employees",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new
{
controller = "Employees",
action = "GetEmployeeName",
id = RouteParameter.Optional
}
);
我相信,因为我没有收到任何编译或web开发工具的错误一边的错误与路由配置从404通知。任何帮助将不胜感激。
Maggie Ying,谢谢你的纠正我感谢你的快速回复。该编辑工作完美,再次感谢。 – cetmrw791346