You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor .NET C#无法从HTML <form>获取输入,报CS0103错误

解决CS0103:名称"Request"在当前上下文中不存在的问题

你遇到的错误信息:

CS0103 Der Name "Request" ist im aktuellen Kontext nicht vorhanden.
翻译:CS0103 名称"Request"在当前上下文中不存在

问题出在ASP.NET Core环境下,直接引用Request对象的方式已不再适用,以下是具体修正方案:

原因分析

在新版ASP.NET Core(包括Razor Pages、MVC视图)中,Request对象不再直接暴露在视图的默认上下文里,需要通过Context对象来访问请求信息。

修正后的Razor视图代码

把原来的Request替换为Context.Request即可:

@{
    double distance = 0;

    if (Context.Request.Query.ContainsKey("distance"))
    {
        double.TryParse(Context.Request.Query["distance"], out distance);
    }
}

更规范的Razor Pages写法(推荐)

如果使用Razor Pages,建议把业务逻辑放到页面模型文件(如Index.cshtml.cs)中,视图仅负责展示:

页面模型代码(Index.cshtml.cs)

using Microsoft.AspNetCore.Mvc.RazorPages;

namespace YourNamespace.Pages
{
    public class IndexModel : PageModel
    {
        public double Distance { get; set; }

        public void OnGet()
        {
            if (Request.Query.ContainsKey("distance"))
            {
                double.TryParse(Request.Query["distance"], out Distance);
            }
        }
    }
}

视图代码(Index.cshtml)

@page
@model IndexModel

<p>Enter distance:</p>
<form method="get">
    <input type="text" name="distance" />
    <button type="submit">Calculate</button>
</form>

@if (Model.Distance > 0)
{
    <p>输入的距离是: @Model.Distance</p>
}

你的HTML表单部分没有问题,method="get"和name="distance"的设置正确,修正C#代码后即可正常获取用户输入。

内容的提问来源于stack exchange,提问作者lune_star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:31:00