首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当添加'HttpGet‘命名空间时,找不到类型或命名空间名称'System.Web.Http’

当添加'HttpGet‘命名空间时,找不到类型或命名空间名称'System.Web.Http’
EN

Stack Overflow用户
提问于 2013-10-11 13:45:15
回答 4查看 39.7K关注 0票数 22

我在MVC中有一个问题。

目前我正在使用MVC,版本是MVC4。我有两个ActionResult方法,如下所示

代码语言:javascript
复制
[HttpGet]
 public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

 [HttpPost]
 public ActionResult About(ModelName ccc)
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

我们需要HttpPost和HttpGet属性的using System.Web.Mvc;名称空间。因此,我在控制器中添加了using System.Web.Mvc;名称空间。但是我需要在我的控制器.Si中添加另一个名称空间using System.Web.Http;,用于httpsresponseexpection错误处理。此时,System.Web.Mvc;不起作用。

我收到此错误:找不到类型或命名空间名称'HttpGet‘。为什么?System.Web.Mvc和HttpGet的System.Web.Http之间有什么关系?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-11 14:14:28

出现此异常的原因是因为在两个不同的命名空间中有两个不同的HttpGetAttribute类:

第一个用在ASP.NET MVC控制器中,第二个用在ASP.NET Web API控制器中。

当您导入第二个名称空间时,编译器不再能够消除您引用的两个类中的哪一个的歧义,因为这两个名称空间在作用域中。

基本上,微软复制了Web的ASP.NET MVC中存在的所有类,但将它们放在不同的名称空间中。基本上,您不应该混合使用这些名称空间。

,但我需要使用System.Web.Http;添加另一个名称空间,以便在控制器中进行httpsresponseexpection错误处理

为什么需要在ASP.NET MVC控制器中使用它?通常,这是您应该在Web API控制器中执行的操作。

但是,如果出于某种原因,您需要混合使用这两个属性,则必须通过完全限定来显式指定您需要使用的属性:

代码语言:javascript
复制
[System.Web.Mvc.HttpGet]
public ActionResult About()
{
    ViewBag.Message = "Your app description page.";
    return View();
}
票数 42
EN

Stack Overflow用户

发布于 2017-01-28 03:11:03

需要说明的是,我在引用MVC的类库中遇到了类似的问题。我在类库中安装了一个nuget包,它本身依赖于MVC (注意:新的包是: RazorGenerator.Mvc)。以前,类库依赖于使用“Add reference”对话框添加的System.Web.Mvc.dll引用,而不是通过"Microsoft.AspNet.Mvc“nuget包安装的引用。

Nuget选择了最低的MVC版本,以满足新包的依赖要求。这意味着以前的引用(对MVC5)被替换为较低版本的引用(对MVC3)。

使用nuget升级类库中的MVC版本解决了此问题。

票数 1
EN

Stack Overflow用户

发布于 2017-11-28 17:17:15

以下是该问题的解决方案,请尝试……

代码语言:javascript
复制
 [System.Web.Mvc.HttpGet]
 public ActionResult About()
{
        ViewBag.Message = "Your app description page.";

        return View();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19311044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档