c# - Web api 中的请求始终为空?

标签 c# asp.net-mvc-4 asp.net-web-api

我有一个带有基本 Controller 的 Web API,我想从 Request.GetRouteData().Values["controller"] 获取请求的 Controller 名称,如下代码:

public class BaseApiController : ApiController
{
    protected string EntityName;

    public BaseApiController()
    {
        //Request is null
        EntityName = Request.GetRouteData().Values["controller"] as string;
    }
}

但是Request在上面的代码中总是null。
上面的代码有什么问题?

最佳答案

这是预料之中的——您在 Controller 构造函数中。 Controller 尚未用实际请求初始化。尝试如下操作:

protected string EntityName 
{
  get { Request.GetRouteData().Values["controller"] as string; }
}

在构造函数运行之后,以及当您在子类方法中时,应该可以访问它。

关于c# - Web api 中的请求始终为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20428305/

相关文章:

c# - 使用 MVC 4 的自定义页面访问安全性

asp.net-mvc-3 - MVC 4 - 如何关闭默认的 Error.vbhtml 页面?

c# - .NetCore 3.1API 无法加载文件或程序集 'Microsoft.AspNetCore.Hosting.Abstractions'

javascript - 代码中硬编码的 Web API 调用与多种环境的比较

c# - 如何在Azure Function C#中获取文件夹路径

jquery - 使用 jQuery 验证和 MVC 验证 ajax 中加载的表单

c# - System.Web.Mvc.HtmlHelper 不包含 MvcSiteMap 的定义

javascript - 在angular js中从web api下载csv文件

c# - 自定义绑定(bind) : The provided URI scheme 'https' is invalid; expected 'http' . 参数名称:via

c# - 位图到 avi 文件 c# .Net