我创建了一个新的Web应用程序,其中包含MVC模板和具有MVC和Web API的核心参考。
我想通过Web API控制器处理所有业务逻辑。我有一个登录页面视图,在表单提交中我想用表单数据调用Web API方法。
Login.cshtml
<form action="/api/Authorization/Login" method="post">
<div>
UserName: <input type="text" name="UserName" id="UserName" value="" />
</div>
<div>
Password: <input type="password" name="UserPassword" id="UserPassword" value="" />
</div>
<div>
<input type="submit" name="BtnSubmit" value="Login" />
</div>
我在控制器文件夹中添加了一个名为&#39;授权&#39;的Web API控制器。在上面的表格提交中,我无法达到方法&#39;登录&#39;
授权Web API控制器:
public class AuthorizationController : ApiController
{
public ActionResult Login(string UserName, string UserPassword)
{
// method logic
}
}
请让我知道我在这里缺少什么,以便我可以达到api控制器下定义的方法?
还没有添加任何新的路由配置,webApiConfig.cs中唯一的配置是,
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
答案 0 :(得分:1)
您在Login()函数上方缺少[HttpPost]属性。因为它是你的方法只适用于GET请求。
此页面将为您提供帮助:https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1