2010-03-12 43 views
3

我有以下的HTML代码为什么当我从页面发布到页面时,我的Asp.Net表单是空的?

<%@ 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

MVC or webforms?看起来你正在尝试使用MVC。 – Swoop 2010-03-12 15:16:10

+0

你的目标代码是什么样的?你的断点在哪里? – 2010-03-12 15:19:17

+0

现在所有我在我的目标是这个 <%@ Page Language =“C#”%> <% string text =“”; %> ,我对代码的唯一线明显断裂。我使用手表来验证我所得到的。 – 2010-03-12 15:34:27

回答

3

如果您正在使用ASP.NET MVC,输入名称需要使用“name”属性,而不是“ID”进行设置。

+0

我正在使用webforms。没有代码背后,只是一个DLL来处理一些数据库访问,其余的是脚本。 – 2010-03-12 15:35:50

+0

实际上非常感谢,那就是解决方案。 – 2010-03-12 15:52:06

0

您可能重置事件处理程序(如page_load)中的表单值。

1

如果您正在使用ASP.NET 4.5和我一样,使用下面的提示

  • 禁用自动友好的URL在Web窗体项目
    • settings.AutoRedirectMode = RedirectMode.Off; //在RouteConfig.cs
  • 如果可以的话:从表单元素
    • 删除操作= “CILandingPage.aspx” 把一个ASP:按钮,而不是普通按钮的
    • 设置一项PostBackUrl = “〜/ CILandingPage.aspx” 在你的ASP:按钮

更多更详细的资源,这是对我有用

+0

重要的是在你的第一个链接中,你可以设置settings.AutoRedirectMode = RedirectMode。在RouteConfig.cs中关闭。没有必要完全禁用自动友好的URL。 – 2017-01-18 21:24:42

0

另一种方法是捕捉你的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自动重定向 - 如果存储了数据为s除了表单数据以外,不必关闭friendlyUrls或将AutoRedirectMode设置为RedirectMode.Off。

相关问题