c#后台取不到input值

c#后台获取不到前台input里面的值,是什么原因呢? 后台的m值一直是null。 求解

img

img

你的 m = Request["yonghuming"] 里的Request 是一个字典吗,检查下里面有yonghuming 这个key嘛,对应的value是否是空

前端怎么提交的? 代码贴出来 看看

如果你用get方式传参,那么应该用
Request.QueryString["keyname"]
如果参数是跟form一起提交的,那么应该用
Request.Form["keyname"]
如果不确定到底放哪了,可以用
Request.Params["keyname"]
不要把参数直接丢进Request里去

你好,
你用request 去请求值的时候,要先提交表单。建议你可以写一个提交按钮。

  <input id="yonghuming" name="yonghuming" value="1" type="hidden" />
  <asp:Button Text="Submit" runat="server" OnClick="Submit" />

后台:

 protected void Submit(object sender, EventArgs e)
        {
            string m = Request["yonghuming"];
        }

解决了这个问题之后,你还要检查的input value 是否有值。你可以运行的时候按F12 去检查

应该使用Request.Params["控件名"] 或 Request.Form["控件名"]来取input的。

其实不用这种方法也可以,可把在input里加入runat="server",这里就可以在后台使用控件的ID进行取值了,即:this.控件ID.Text

使用Request获取值的方式,一种是在url中对相应的参数赋值,本问题的参数yonghuming,那么URL参考:
http://localhost:5608/WebForm1.aspx?yonghuming=hovertree
看下浏览器的URL中是否有对yonghuming参数赋值,按照以上URL, Request["yonghuming"].ToString() 值为hovertree

也可以通过form赋值,示例代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="HovertreeRequest.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="formHovertree" runat="server">
        <div>
            <asp:TextBox runat="server" ID="yonghuming"  />
            <asp:Button runat="server" ID="btnHewenqi" Text="提交" />
        </div>
    </form>
</body>
</html>


using System;

namespace HovertreeRequest
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            object h_o = Request["yonghuming"];
            string m;
            if (h_o != null)
            {
                m = h_o.ToString();
                Response.Write(m);
            }
        }
    }
}

img


你这种需要做成Webservices。不能这样写。runat="server"也是一个选择,不过比较消耗服务器资源