Почему моя форма Asp.Net пуста, когда я отправляю со Страницы на Страницу? - PullRequest
3 голосов
/ 12 марта 2010

У меня есть следующий 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"] ничего не дает.

Любая подсказка, почему?

Ответы [ 4 ]

3 голосов
/ 12 марта 2010

Если вы используете ASP.NET MVC, входные имена должны быть установлены с атрибутом «name», а не «id».

1 голос
/ 17 ноября 2016

Если вы используете ASP.NET 4.5, как я, используйте подсказки ниже

  • Отключить автоматические дружественные URL-адреса в проекте веб-формы
    • settings.AutoRedirectMode = RedirectMode.Off; // в RouteConfig.cs
  • если вы можете:
    • удалить действие = "CILandingPage.aspx" из элемента формы
    • вместо обычной кнопки поставить кнопку asp:
    • set PostBackUrl = "~ / CILandingPage.aspx" на кнопке asp:

больше ресурсов с более подробной информацией, которая была мне полезна

0 голосов
/ 19 января 2017

Другим вариантом является захват ваших данных 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.

0 голосов
/ 04 июня 2013

Вы, вероятно, сбрасываете значение формы в обработчиках событий (например, page_load).

...