【问题标题】:Unable to setup a controller on Blazor Server无法在 Blazor 服务器上设置控制器
【发布时间】:2021-11-08 00:16:44
【问题描述】:

我正在尝试将 MVC、WebAPI 或任何控制器添加到我的 Blazor Server 项目中。

我已经阅读了许多关于此问题的 SO 问题、博客等,例如 this。它们都不起作用。

当我在调试中启动应用程序并尝试使用 Postman 发出请求时,无论我在“配置”或“配置服务”方法中向“端点”或“应用程序”添加什么,它都会超时。

我试过了:

完全按照链接答案中所示添加控制器。

在我的 Startup 中添加所有这些:

  • endpoints.MapControllers()
  • endpoints.MapGet("/aaa", async context => await context.Response.WriteAsync("Hello World!"););
  • endpoints.MapDefaultControllerRoute()
  • app.UseMvc()
  • app.UseMvcWithDefaultRoute()

Postman 没有得到任何答案(超时),也没有触发我在控制器的“Get”方法中设置的断点。

我该怎么做才能让控制器正常工作?

【问题讨论】:

    标签: c# controller blazor-server-side


    【解决方案1】:

    我做了以下事情(“在我的机器上工作”):

    1. 创建一个新的 BlazorApp:
    dotnet new blazorserver -o BlazorApp --no-https
    
    1. 添加控制器:
    namespace BlazorApp.Controllers
    {
      using Microsoft.AspNetCore.Mvc;
    
      [ApiController]
      public class TestController : ControllerBase
      {
        [HttpGet("test")]
        public ActionResult<string> Test()
        {
          return "TODO";
        }
      }
    }
    
    1. endpoints.MapControllers(); 添加到Satrtup.cs
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();            // new
        endpoints.MapBlazorHub();              // existing
        endpoints.MapFallbackToPage("/_Host"); // existing
    });
    
    1. 运行应用程序

    2. 转到 http://localhost:5000/test(你会得到 "TODO" 响应)

    3. 转到 http://localhost:5000(您将看到 Blazor 页面)

    编辑

    cmets 中的@Tessaract 提到该站点在 HTTPS 上运行,而普通 HTTP 正在被查询(因此不起作用)。

    【讨论】:

    • 好吧,摇滚我,阿玛迪乌斯!这是HTTPS。就像我在问题中所写的那样,我已经尝试过你的方法并得到了 zilch。所以当我开始一个全新的项目来验证我的具体情况是否有问题并得到相同的“zilch”时,它点击它可能是 HTTPS(这两个项目默认情况下都是使用 HTTPS 创建的,而我发现你的“-no https”选项,这让我开始思考)。总是那些微小的细节。无论如何,由于我的浏览器隐藏了 url 的协议部分,我总是调用该站点的 HTTP 版本。您的解决方案没有帮助... [1/2]
    • [2/2] 如果您写下有关检查查询正确协议“HTTP”或“HTTPS”的说明,您可能会帮助其他一些傻瓜。 :) 无论如何,我会接受你的回答。
    • @Tessaract 很高兴听到你解决了它。将其添加到我的答案中。
    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多