【问题标题】:Request.Form[""] returns null in foreach loopRequest.Form[""] 在 foreach 循环中返回 null
【发布时间】:2021-08-06 02:35:38
【问题描述】:

在我的.cshtml 我有这个:

 <input type="text" id="snsearch" name="snsearch" style="width:180px" />

在我的.cshtml.cs 我有这个:

 var v = Request.Form["snsearch"]; //Gets the value of the textbox OK

 foreach (var x in y)

 {
   if (x.Contains(v)) //v becomes null after one iteration
   {
     //do something
   }

 }

我尝试设置一个布尔值来仅捕获一次变量,但没有成功。有人对如何做到这一点有任何建议或其他方法吗?

【问题讨论】:

  • 什么是“y”?我不明白
  • 一个可枚举的集合...试图简单地回答这个问题——我循环的内容并不重要,但在第一次迭代后 v 变为 null
  • OK "v" 例子你分享一个真正的价值吗?
  • var v = Request.Form["snsearch"];示例值
  • 你确定 x 可能不是我的空值吗?您是否在该行收到任何错误,如果您可以发布它们?

标签: c# forms asp.net-core razor foreach


【解决方案1】:

如果要获取输入值,可以使用BindProperty绑定剃须刀页面中的值:

cshtml:

<form method="post">
    <input type="text" id="snsearch" name="snsearch" style="width:180px" />
    <input type="submit" value="submit" />
</form>

cshtml.cs:

[BindProperty]
public string snsearch { get; set; }
public IActionResult OnPost()
        {
            foreach (var x in y)

            {
                if (x.Contains(snsearch)) 
                {

                    //do something
                }

            }
            return Page();
        }

结果(我用假数据测试):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2017-03-10
    相关资源
    最近更新 更多