我有以下HTML代码
<%@ Page Language="C#" %>
<html>
<head>
<title></title>
</head>
<body>
<form id="frmSystem" method="post" action="target.aspx">
<input id="txtTextField" type="text" />
<input id="btnPost" value="Submit" onclick="javascript:frmSystem.submit();" type="button" />
</form>
</body>
</html>
目标页面即将出现,但它接收的表单是空的。我在target.aspx页面上有一个断点,虽然我可以看到一个表单,但它的键是空的,而Request [“txtTextField”]却什么也没给我。
有什么线索?
答案 0 :(得分:3)
如果您使用的是ASP.NET MVC,则需要使用“name”属性而不是“id”设置输入名称。
答案 1 :(得分:1)
如果您像我一样使用ASP.NET 4.5,请使用以下提示
更多资源以及对我有用的更多细节
答案 2 :(得分:0)
您可能会重置事件处理程序中的表单值(例如page_load)。
答案 3 :(得分:0)
另一种选择是在Global.asax.cs上的Application_BeginRequest中捕获您的Request.Form []数据:
protected void Application_BeginRequest(object sender, EventArgs e)
{
//capture form data and preserve in query string
if (Request.Form["txtTextField"]!= null)
{
Response.Redirect(Request.RawUrl + "?txtTextField="
+ Request.Form["txtTextField"]);
}
//or preserve in Session variable
if(Request.Form["txtTextField"]!=null)
{
Session["txtTextField"]=Request.Form["txtTextField"];
}
}
问题是表单数据在由friendlyUrls应用的自动重定向中丢失 - 如果您将该数据存储为表单数据之外的其他内容,则无需关闭friendlyUrls或将AutoRedirectMode设置为RedirectMode.Off。 / p>