来自ASP.NET MVC5应用程序的Web API调用

时间:2016-12-14 13:14:58

标签: asp.net-mvc-5 asp.net-web-api2

我创建了一个新的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
    }
}

在表单提交结束时,显示以下屏幕, enter image description here

请让我知道我在这里缺少什么,以便我可以达到api控制器下定义的方法?

还没有添加任何新的路由配置,webApiConfig.cs中唯一的配置是,

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

1 个答案:

答案 0 :(得分:1)

您在Login()函数上方缺少[HttpPost]属性。因为它是你的方法只适用于GET请求。

此页面将为您提供帮助:https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1