Asp.net mvc 如何通过浏览器使用post数据(Int类型的单个参数)发出post请求

Asp.net mvc 如何通过浏览器使用post数据(Int类型的单个参数)发出post请求,asp.net-mvc,asp.net-web-api2,asp.net-mvc-routing,restful-url,Asp.net Mvc,Asp.net Web Api2,Asp.net Mvc Routing,Restful Url,我在我的Web应用程序中使用WebAPI2,它也使用MVC个人用户帐户。因此,所有控制器都具有[Authorize]属性。我想测试我的Web API方法,如果它工作正常,但我不能使用POSTMAN工具进行测试,因为应用程序的登录功能只是限制。我试着从邮递员那里登录到这个网站,但是失败了,那些饼干和其他东西让我大吃一惊。我想通过浏览器从URL本身传递post数据来发出post请求。我尝试了多种方法,但似乎我哪里出了问题,需要一些帮助 Routeconfig文件: 控制员: 我试过的请求; 1. 二

我在我的Web应用程序中使用WebAPI2,它也使用MVC个人用户帐户。因此,所有控制器都具有[Authorize]属性。我想测试我的Web API方法,如果它工作正常,但我不能使用POSTMAN工具进行测试,因为应用程序的登录功能只是限制。我试着从邮递员那里登录到这个网站,但是失败了,那些饼干和其他东西让我大吃一惊。我想通过浏览器从URL本身传递post数据来发出post请求。我尝试了多种方法,但似乎我哪里出了问题,需要一些帮助

Routeconfig文件:

控制员:

我试过的请求; 1. 二,

当我尝试上述请求时,我得到以下错误。 1请求的资源不支持http方法“GET”。 2未找到与请求URI匹配的HTTP资源


我遵循微软的WebAPI2教程,搜索了其他资源,但为了发布数据和测试人们是否使用了postman&在表单正文中发送数据。当以查询字符串的形式发布GetRequest的参数时,我们是否也可以对PostRequest执行相同的操作?

如果您仍然希望通过body并通过POSTMAN的测试,您可以对控制器进行一些调整并实现它。 只需使用[AllowAnonymous]属性标记您的控制器,这将使您的控制器和其中的所有操作方法都可以被任何人访问!您的控制器看起来与此类似

[AllowAnonymous]
public class AttendancesController : ApiController
{
    private ApplicationDbContext context;
    public AttendancesController()
    {
        context = new ApplicationDbContext();
    }
}
现在你能做的就是,在邮递员界面中,给出URL并选择POST from 正文中的HTTP方法列表和

{ "gigId" : "<Your Id Here>"}

希望这有帮助

简单快速的回答:1您不能对明显标记的HttpPostAttribute方法使用GET-request,2使用FromBodyAttribute标记的参数仅来自传入HttpRequestMessage的实体体,而不是URL请求。感谢@tetsuyayayamamoto提供的信息,那么您认为有什么方法可以解决我的问题吗?如果您想从Attain发出GET请求,只需删除HttpPost和FromBody属性,但我仍然在弄清楚你想对GET请求做什么,它将数据插入数据库,这应该通过POST请求来处理。如果您是从HTML表单发布的&使用jQuery,您可以使用$.POST'api/attentations/attent',{:$'gigId'.val};是的,我使用jquery发布数据并进行检查。谢谢@Tetsuya Yamamoto。嗨,Bhadhri,谢谢你的回答。要对应用程序进行任何更改,首先我需要登录,然后像你说的那样,我可以将Allowanonymous属性应用到相应的控制器上,以允许post请求。
[AllowAnonymous]
public class AttendancesController : ApiController
{
    private ApplicationDbContext context;
    public AttendancesController()
    {
        context = new ApplicationDbContext();
    }
}
{ "gigId" : "<Your Id Here>"}