我有以下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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top