페이지에서 페이지마다 게시 할 때 ASP.NET 양식이 비어있는 이유는 무엇입니까?
문제
다음 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로 설정할 필요가 없습니다.
제휴하지 않습니다 StackOverflow