我的控制器中有一个POST方法可以正常工作。我想在同一个控制器中包含一个方法来获取记录列表。我无法获得记录。如果我在不同的控制器中编写GET方法,它可以正常工作,但是当我在现有控制器中包含相同的方法时,它会给出错误“无法加载资源:服务器响应状态为405(方法不允许)”。这是我的控制器的代码:
using MyApp.Entity.Models;
using Newtonsoft.Json.Linq;
namespace MyApp.Server.Controllers
{
[RoutePrefix("api/dashboard")]
public class MembersController : BaseAppController
{
public MembersController()
{
}
public MembersController(HttpContext current)
{
HttpContext.Current = current;
}
[AllowAnonymous]
public string PostMemberDetails(JObject memberData)
{
//My code here
}
[AllowAnonymous]
public List<MyApp.Entity.Models.registeredmembers> Get(bool isRegistered)
{
//My code here
}
}
}
这是路由配置代码:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这里出了什么问题?
答案 0 :(得分:0)
将Post方法重命名为“Post”,两种方法都应该有效。
如果没有另外配置,WebApi应该具有以名为Get / Post等的方法类型命名的动作
答案 1 :(得分:0)
您的路线似乎不允许使用isRegistered
参数,而是需要id
参数。
尝试将路由代码更改为:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{isRegistered}",
defaults: new { isRegistered = RouteParameter.Optional }
);