为什么是我的Asp.Net 形式到达空时我后一页一页?
题
我有以下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>
目标网页来了但形式,它是接收为空。我有一个突破点在我的目标。aspx页的话我可以看到一个形式,这是钥匙都是空的和请求["txtTextField"]给了我什么都没有。
任何线索为什么?
解决方案
如果你正在使用ASP.NET MVC,输入名称需要使用“name”属性,而不是“ID”进行设置。
其他提示
如果您使用ASP.NET 4.5像我一样,使用下面的提示
- 禁止自动友好的网址 在一个网页形式的项目
- 设置。AutoRedirectMode=RedirectMode.关;//in RouteConfig.cs
- 如果你可以:
- 删除action="CILandingPage.aspx"从形成元素
- 把asp:按钮而不是正常的按钮
- 设置 PostBackUrl="~/CILandingPage.aspx"在你的asp:按钮
更多资源的更多细节,对我很有用
您可能重置事件处理程序(如Page_Load中)的形式的值。
另一种选择是捕捉的Request.Form []数据中的Application_BeginRequest上的Global.asax.cs:
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
不隶属于 StackOverflow