猿问

ASP.NET Core 2.1 [FromQuery] 未获取参数

你应该定义 int[]activityTimes 作为一个全局变量,把它放在外面


public partial class Form1 : Form

{

    string activity;

    int activityTime;

    bool enteredInt = false;


    //initializes variables used to store activities

    string activity1 = "";

    string activity2 = "";

    string activity3 = "";

    string activity4 = "";

    string activity5 = "";



    //intitializes variables used to store activity times

    int activityTime1 = 0;

    int activityTime2 = 0;

    int activityTime3 = 0;

    int activityTime4 = 0;

    int activityTime5 = 0;


    int i;

    string[] activities=new string[length];



    public Form1()

    {

        InitializeComponent();

    }

}


慕尼黑5688855
浏览 463回答 2
2回答

长风秋雁

选项 1)尝试将您的[HttpGet]属性更改为[HttpGet("GenerateCode/{email}]/[action]如果这样做,您将需要从控制器的 Route 属性中删除,所以它只是[Route("api/[controller]")]选项2)或者,在Startup.cs变化app.UseMvc();到app.UseMvc(routes =>{    routes.MapRoute(        name: "default",        template: "api/{controller=Home}/{action=Index}/{id?}");});并[Route("api/[controller]/[action]")]从控制器属性中删除并确保您也没有该[ApiController]属性此解决方案将更改您整个项目的路由,因此您必须对所有其他 API 控制器执行相同操作选项 3)第三种解决方案是更改[Route("api/[controller]/[action]")]为[Route("api/[controller]/[action]/{id?}")]我已经测试了所有 3 个解决方案,它们都带有 URL {{url}}/api/ControllerName/ActionName?email=test

小唯快跑啊

回答有点晚,但可能对其他人有帮助选项 4您可以在 [FromQuery] 属性中显式命名查询字符串参数名称[HttpGet][Authorize(Roles = "admin")]public async Task<IActionResult> GenerateCode([FromQuery(Name="email")] string email){}
随时随地看视频慕课网APP
我要回答