Вызов API ядра AspNet Dotnet Get с параметром

#c# #asp.net-core #httpclient

#c# #asp.net-core #httpclient

Вопрос:

Как и в описании, я создал веб-сайт, на котором представлены некоторые API:

Startup.cs настраивается следующим образом:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  if (env.IsDevelopment())
  {
    app.UseDeveloperExceptionPage();
  }

  app.UseStaticFiles();
  app.UseRouting();

  app.UseEndpoints(endpoints =>
  {
    endpoints.MapControllers();
    endpoints.MapControllerRoute(
      name: "default", 
      pattern: "{controller}/{id}");
  });
}
  

Единственный контроллер (именованный Controller ) имеет следующее:

 [HttpGet]
public IEnumerable<string> Get()
{
  return new string[] { "Hello", "World" };
}

[HttpGet("{incomingString}")]
public string GetString(string incomingString)
{
    return incomingString;
}
  

Когда я запускаю проект, страница http://localhost:60026/Controller открывается и Get() вызывается.
Для запуска GetString я должен добавить /<some string> к URL, что не так, как должно быть.

Я пытаюсь вызвать GetString с помощью клиента HttpClint.GetAsync() , но мне не удалось вызвать его или передать ему что-либо.

Комментарии:

1. «это не так, как должно быть». … как вы хотите, чтобы это было тогда точно? Потенциально существует много способов его настройки. Будьте конкретны в своих требованиях

2. Вы правы. Я понял, что не понимаю, что я делаю. Я просто [HttpGet("{incomingString}")] заменил [HttpGet] [Route("GetString")] и добавил [FromQuery] перед параметром метода.