c#后台获取不到前台input里面的值,是什么原因呢? 后台的m值一直是null。 求解
你的 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);
}
}
}
}