Ram*_*ran 21 c# asp.net-mvc http-get http-post
我在MVC中有一个问题.
目前我在MVC工作,版本是MVC4.我有2个ActionResult方法,见下文
[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();
}
Run Code Online (Sandbox Code Playgroud)
我们需要[HttpPost]和[HttpGet]属性的using System.Web.Mvc;命名空间 .所以我在控制器中添加了命名空间.但我需要在我的控制器中为httpsresponseexpection错误处理添加另一个命名 空间.我在命名空间中添加了.这时候不行.using System.Web.Mvc;using System.Web.Http;System.Web.Mvc;
我收到此错误:无法找到类型或命名空间名称'HttpGet'.为什么?HttpGet的System.Web.Mvc和System.Web.Http之间的任何关系?
Dar*_*rov 40
您获得此异常的原因是因为HttpGetAttribute2个不同的命名空间中有2个不同的类:
第一个用于ASP.NET MVC控制器,第二个用于ASP.NET Web API控制器.
导入第二个命名空间时,编译器不再能够消除您引用的2个类中的哪个类的歧义,因为2个命名空间在范围内.
基本上,Microsoft复制了ASP.NET MVC中存在的用于Web API的所有类,但是将它们放在不同的命名空间中.基本上你不应该混合这些名称空间.
但我需要使用System.Web.Http添加另一个命名空间; 用于我的控制器中的httpsresponseexpection错误处理
为什么需要在ASP.NET MVC控制器中使用它?通常,您应该在Web API控制器中执行此操作.
但是如果由于某种原因你需要混合2,你必须通过完全限定它来明确指定你需要使用哪个属性:
[System.Web.Mvc.HttpGet]
public ActionResult About()
{
ViewBag.Message = "Your app description page.";
return View();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34055 次 |
| 最近记录: |