当使用不是Admin时,如何从web api控制器重定向到mvc home controller。
// GET api/adminleave
public IEnumerable<ObjectModel> GetPendingLeave()
{
if (!User.IsInRole("Admin"))
{
var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("example.com");
return response;
}
List<ObjectModel> obj=new List<ObjectModel>();
return obj;
}
我按照上面的方式尝试但是出错了。
错误27无法隐式转换类型 &#39; System.Net.Http.HttpResponseMessage&#39;至 &#39; System.Collections.Generic.IEnumerable&#39 ;. 存在显式转换(你错过了吗? cast?)F:\ WebPortal \ WebApplication1 \ Controllers \ Leave \ AdminLeaveController.cs 34 24 WebApplication
当我从webAPI控制器返回对象列表时,如何重定向表单webapi控制器
答案 0 :(得分:1)
你想做什么,在MVC / WebAPI关系方面没有任何意义。在MVC中,整个网站由您的服务器提供服务,使用您依赖于客户端API关系的WebAPI,您可以在其中创建一个API,您可以使用该API。
您无法在重定向方面混合使用这些方法。您可以做的是通知您的客户,在此特定方案中需要重定向(但这仍然不是理想的解决方案)并在客户端执行重定向。
考虑一下 - 如果你创建一个可以被“所有人”使用的API,那么执行这样的重定向似乎是正确的吗?另一种选择是在MVC控制器中调用一个动作并获得结果,但我假设您希望在用户具有“管理员”角色时转到另一个页面。