【发布时间】:2014-11-27 00:04:42
【问题描述】:
从 MVC 控制器调用 Web API post 方法返回以下错误:
“远程服务器返回错误:(405) Method Not Allowed”
在 MVC 控制器下面的动作代码调用一个辅助类方法,在调试时我可以看到控制从这里移动到下一个方法:
public ActionResult Submit(FormCollection form)
{
Lead_Options lead = new Lead_Options();
lead.Situation = form.GetValue("InsuranceFor").AttemptedValue;
lead.State = form.GetValue("InsuranceState").AttemptedValue;
Uri url= Url_Helper.GetUri(BaseUrl, service1+"Post"); // returns http://localhost:52985/api/HealthInsurance/Post
string obj= new JavaScriptSerializer().Serialize(lead);
Object data = WebApi_Helper.PostData(url,obj);
return RedirectToAction("Parameters");
}
“WebApi_Helper.PostData”是Helper类,被诉调用web api的通用方法:
public static string PostData(Uri url,string obj)
{
string data = null;
try
{
using (WebClient proxy = new WebClient())
{
proxy.Headers.Add(HttpRequestHeader.Accept, "application/json");
data = proxy.UploadString(url,"Post", obj); //Here got error
}
}
catch (Exception ex)
{
throw ex;
}
return data;
}
以下是 WebAPI 方法代码,但调试请求时根本不来这里
[HttpPost]
public void Post(string lead)
{
//leadOptService.AddListOptions(lead);
}
请指导我做错了什么以及如何解决。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-4 asp.net-web-api