Asp.net mvc 如何从mvc4中的不同视图页面调用webapi控制器方法?
如何从mvc4中的不同视图页调用webapi控制器方法 这是我的控制器: /api/GetEmployee/1Asp.net mvc 如何从mvc4中的不同视图页面调用webapi控制器方法?,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,如何从mvc4中的不同视图页调用webapi控制器方法 这是我的控制器: /api/GetEmployee/1 public EmployeeVM GetEmployee(int id) { using (var db = new WorkerDBContext()) { var model = db.Employee.Find(id); if (model != null)
public EmployeeVM GetEmployee(int id)
{
using (var db = new WorkerDBContext())
{
var model = db.Employee.Find(id);
if (model != null)
{
return model;
}
return null;
}
}
您需要将数据访问代码移动到另一个类(存储库模式非常适合),然后从两个控制器调用该方法
public class EmployeeRepository
{
private readonly WorkerDBContext _workerDbContext = new WorkerDBContext();
public Employee GetEmployee(int id)
{
var model = _workerDbContext.Employee.Find(id);
return model;
}
}
然后从控制器:
private readonly EmployeeRepository _employeeRepository = new EmployeeRepository();
public EmployeeVM GetEmployee(int id)
{
var employee = _employeeRepository.GetEmployee(id);
var viewModel = new EmployeeVM { Name = employeeName, ... };
return viewModel;
}
我认为现在的情况是,在同一个控制器中有多个
Get
,Put
,Post
,等等。WebApi(或REST)服务根据请求的操作类型进行工作。无论哪种方式,WebApi中的默认路由都没有操作,因此对路由进行以下更改:
config.Routes.MapHttpRoute(
name: "ActionRoute",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouterParameter.Optional }
);
然后通过以下方式创建到api控制器的链接/调用:
@Url.RouteUrl("ActionRoute", new {httproute= "", controller = "controller", action = "action"});
您的WebApi控制器名是否为GetEmployee?或者这就是方法名?如果是这样,那么控制器名称是什么?GetEmployee name是我的methode name我的web api控制器名称是userprofile,所以问题是..我有很多方法用于post、put、delet,就像这样一些方法我可以在不同的视图中使用ajax调用,但有些方法我不能..请帮助我。。