我们有一个MVC 5.1项目,正在使用属性路由。除了默认页面上有一个登录表单外,一切正常。
[RoutePrefix("Home")]
public class HomeController : BaseController
{
[Route("~/")]
[Route]
[Route("Index")]
[HttpGet]
public ActionResult Index()
{
var model = new LoginViewModel();
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(String Username, String Password)
表单通过GET显示正常但在POST时我们得到...
HTTP错误405.0 - 不允许的方法
由于使用了无效的方法(HTTP动词),无法显示您要查找的页面。
通常默认路由会处理POST和GET罚款。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}/{dealerId}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
显然我在默认路线上的帖子路由中遗漏了一些内容,因为其他页面上的后续帖子工作正常。
有人这样做过吗?
谢谢,
答案 0 :(得分:9)
好吧我似乎只需要添加
[Route("~/")]
[Route]
[Route("Index")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(String Username, String Password)
真的很明显!漫长的一天!