相关疑难解决方法(0)

如何在服务器端 Blazor 中使用 HttpContext 对象来检索有关用户、用户代理的信息

IP 地址等。通常,当用户询问如何在 Server Blazor 应用程序中执行此操作时,他们要么被告知这是不可能的,要么有时会提供使用 JSInterop 的部分解决方案。但是可以在不诉诸 JSInterop 的情况下完成吗?这是答案...

blazor blazor-server-side

14
推荐指数
1
解决办法
9328
查看次数

为什么 razor 组件中的 HttpContext 为 null?

我在几个场景中使用了 dotnet core 3.1 Web 应用程序中的HttpContextfrom 。IHttpContextAccessor它总是按照我的预期设置。

但是,当注入Razor 组件HttpContext时,始终为 null 。IHttpContextAccessor

@inject IHttpContextAccessor HttpContextAccessor

<div>...</div>

@code {
    protected override async Task OnInitializedAsync()
    {
        // here, HttpContextAccessor.HttpContext == null
    }

    public string GetSomeInfo()
    {
        // here, HttpContextAccessor.HttpContext == null
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经像这样IHttpContextAccessor添加了Startup.cs/ConfigureServices()

services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)

为什么在HttpContext null这里?

httpcontext razor asp.net-core blazor-server-side

5
推荐指数
1
解决办法
3545
查看次数

Blazor 页面将 HTML 生成为 PDF

我想打印一个渲染的模态,它打开了一些车辆信息,该按钮出现在模态上,点击应该将模态 HTML 转换为 PDF。

请告知是否有 C# 函数或我可以使用的函数,它将提取我想要转换为 PDF 的当前 HTML,或者引导我朝着正确的方向前进。我只做 C# 大约 2 个月,所以缺乏经验和专业知识。

编辑:还试图让代码在转储 PDF 时使用 CSS。

我添加了以下代码。

添加了参考文献等。

@using BidWheels.Configuration;
@using BidWheels.Shared.Controls;
@using BidWheels.Data;
@using BidWheels.CustomProviders;
@using BidWheels.Services;
@using System.Timers;
@using Syncfusion.Pdf;
@using Syncfusion.HtmlConverter;
@using System.Linq;
@using System.Web;
@using Microsoft.AspNetCore.Http;

@inject AppState AppState;
@inject UsersDAL UsersDAL;
@inject MainDAL MainDAL;
@inject NotificationService NotificationService;
@inject GeneralConfiguration GeneralConfiguration;
@inject GlobalVar GlobalVar;
@inject GlobalVarShared GlobalVarShared;
@inject Microsoft.JSInterop.IJSRuntime JS
@inject IHttpContextAccessor httpContextAccessor
Run Code Online (Sandbox Code Playgroud)

用于执行生成 PDF 的函数的按钮

        </div>
        <button class="btn btn-outline-success" @onclick="@CreatePDF">Generate PDF</button>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是按钮调用的函数。 …

c# blazor

5
推荐指数
1
解决办法
6582
查看次数

如何通过 HttpContext 访问 Blazor Server .Net 6 中的 cookie?

不幸的是,有关在 Blazor Server 中访问 c​​ookie 的教程和之前的 StackOverflow 答案似乎在新的 .Net 版本中变得无效。例如,我无法获得以下任一答案(并根据 .net 6 中没有的注释来判断): How to use the HttpContext object in server-side Blazor to检索有关用户、用户代理的信息
如何在服务器端 Blazor 中访问 HttpContext?

我有一个包含以下代码的 Program.cs 文件:

..
builder.Services.AddHttpContextAccessor();
..  
Run Code Online (Sandbox Code Playgroud)

它还有一个 app.MapPost 方法,使用以下方法设置 cookie: HttpContext.Response.Cookies.Append

我可以确认 cookie 有效,因为在邮递员中,我可以在查询此 app.MapPost 方法时成功检索它。

当尝试在 Login.Razor 页面中查询该方法时,它可以工作,但未设置 cookie。在此 Login.razor 中,httpContextAccessor.HttpContext.Request.Cookies["my_cookie"] 始终返回 null (即使响应本身是 200 OK,并且我可以很好地读取其内容,但没有可通过 HttpContext 检索的 cookie)。

这似乎是一个常见问题,从两个链接的答案来看,该问题已解决,但现在在 .net 6 中似乎再次出现问题。如何访问 Blazor Server .net 6 中的 HttpContext 以访问查询中发送的 cookie?

.net blazor

3
推荐指数
1
解决办法
2107
查看次数