ページからページに投稿すると、Asp.Net フォームが空で届くのはなぜですか?

StackOverflow https://stackoverflow.com/questions/2433624

  •  19-09-2019
  •  | 
  •  

質問

次の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"] は何も与えません。

理由は何か手がかりはありますか?

役に立ちましたか?

解決

あなたはASP.NET MVCを使用している場合は、入力された名前は「名前」属性ではなく、「ID」で設定する必要があります。

他のヒント

私と同じように ASP.NET 4.5 を使用している場合は、以下のヒントを使用してください

  • 自動フレンドリー URL を無効にする Web フォーム プロジェクト内
    • settings.AutoRedirectMode = RedirectMode.Off;// RouteConfig.cs 内
  • できれば:
    • フォーム要素から action="CILandingPage.aspx" を削除します
    • 通常のボタンの代わりに asp:button を配置します
    • セット ポストバック URLasp:button の ="~/CILandingPage.aspx"

私にとって役立つ、より詳細なリソースが追加されました

あなたはおそらく、(などをPage_Loadなど)イベントハンドラでフォームの値をリセットします。

別のオプションは、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をオフにするかRedirectMode.OffにAutoRedirectModeを設定することが不要であることを格納する場合

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top