페이지에서 페이지마다 게시 할 때 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>

대상 페이지가 나오고 있지만 수신중인 양식은 비어 있습니다. 내 대상 페이지에 중단 점이 있고 양식을 볼 수 있지만 키는 비어 있고 요청 [ "txtTextField"]는 아무것도 제공하지 않습니다.

이유가 있습니까?

도움이 되었습니까?

해결책

ASP.NET MVC를 사용하는 경우 입력 이름을 "ID"대신 "이름"속성으로 설정해야합니다.

다른 팁

나와 같은 asp.net 4.5를 사용하는 경우 아래 힌트를 사용하십시오.

  • 자동 친화적 인 URL을 비활성화합니다 웹 양식 프로젝트에서
    • settings.AuteDeRectMode = redirectMode.Off; // lourteconfig.cs에서
  • 할 수 있다면 :
    • 양식 요소에서 action = "cilandingpage.aspx"를 제거하십시오
    • 일반 버튼 대신 ASP : 버튼을 넣습니다
    • 세트 PostBackUrl= "~/cilandingpage.aspx"ASP : 버튼

나에게 유용한 자세한 내용을 가진 더 많은 리소스

이벤트 처리기 (예 : Page_Load)에서 양식 값을 재설정 할 수 있습니다.

또 다른 옵션은 request.form [] application_beginrequest의 request.form [] 데이터를 캡처하는 것입니다. 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"];
    }
}

문제는 FriendlyURL에 의해 적용되는 자동 리디렉션에서 양식 데이터가 손실된다는 것입니다. 해당 데이터를 양식 데이터 이외의 다른 것으로 저장하면 FriendlyUrls를 끄거나 autoreDirectMode를 retirectMode.Off로 설정할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top