gpt4 book ai didi

razor - "The name ' 请求 ' does not exist in the current context"

转载 作者:行者123 更新时间:2023-12-04 02:05:59 25 4
gpt4 key购买 nike

编辑:我现在改变了 RequestContext.Request并且现在收到与此帖子标题不同的错误:Cannot apply indexing with [] to an expression of type 'HttpRequest'
因此,我正在尝试向 ASP.Net 介绍自己,并按照此处提供的在线教程进行操作:https://www.w3schools.com/asp/webpages_forms.asp (“显示图像”部分)。我试图在 MVC 风格的布局中实现这一点。结构的起始模板是运行 dotnet new -t web 时生成的模板的修改版本。 .

在我的 Pictures.cshtml 文件中,我有以下内容:

@{
ViewData["Title"] = "Pictures";

var imagePath="";
if (Request["Choice"] != null)
{
imagePath="images/" + Request["Choice"];
}
}

<h2>Pictures</h2>

<form method="post" action="">
I want to see:
<select name="Choice">
<option value="Photo1.jpg">Photo 1</option>
<option value="Photo2.jpg">Photo 2</option>
<option value="Photo3.jpg">Photo 3</option>
</select>
<input type="submit" value="Submit" />
@if (imagePath != "")
{
<p>
<img src="@imagePath" alt="Sample" />
</p>
}
</form>

这是从 MainController.cs 调用的,如下所示:
using Microsoft.AspNetCore.Mvc;

namespace WebApp.Controllers
{
public class MainController : Controller
{
public IActionResult Pictures()
{
return View();
}
}
}

还有一个 _ViewStart.cshtml 引用了 _Layout.cshtml。

运行它时,我被重定向到我的错误页面,终端给出了错误 The name 'Request' does not exist in the current context
有人可以帮助我指出我缺少什么或我做错了什么的正确方向吗?为什么本教程示例在我的项目上下文中不起作用?

干杯:)

最佳答案

我在 Core 2.1 中遇到了同样的错误。我发现如果你把它放在 ViewDataStyles部分,很难调试(或者只是有点奇怪)。否则,对于特定参数,它应该像这样工作:

@Context.Request.Query["Choice"]

对于您的代码,我只会请求一次该值并将其分配给一个变量,然后查看它是否为空。然后,从您的变量创建路径:
var choice = @Context.Request.Query["Choice"];
var imagePath="";
if (!String.IsNullOrEmpty(choice)){
imagePath="images/" + choice;
}

作为奖励,您还可以通过以下方式获取包含所有名称和值的整个查询字符串(如果您想解析它或其他):
@Context.Request.QueryString

关于razor - "The name ' 请求 ' does not exist in the current context",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43392179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com