2009-03-27 4 views
0

저는 ASP.NET을 처음 사용하고 ascx 사용자 정의 컨트롤에 양식 태그가 있습니다. 이 양식은 'aspnetForm'이라는 양식 안에 중첩되어 있기 때문에 javascript에서 양식을 제출할 수 없습니다. cgi에 대한 게시물을 만들고 싶다면 어떻게해야합니까?ASP.NET POST 문제

답변

4

<form runat='server'>이 필요하지 않은 경우 제거하고 자신의 양식을 사용하십시오 : <form action="page.cgi" method="post">. 일부 서버 컨트롤을 사용할 수 없습니다. 대신에 해당 HTML을 사용하십시오.

페이지를 제어 할 수없는 경우 JavaScript를 사용하여 일부 숨겨진 필드가있는 페이지에 새 양식을 삽입하고 버튼을 클릭 할 때 값을 설정할 수 있습니다. 이 같은

뭔가 :

var myForm = document.createElement("form"); 
myForm.attributes["action"] = "mycgi.cgi"; 
myForm.attributes["method"] = "POST"; 
var myhiddenfield = document.createElement("input"); 
myhiddenfield.attributes["type"] = "hidden"; 
myhiddenfield.attributes["name"] = "name" 
document.body.appendChild(myForm); 
myForm.appendChild(myhiddenfield); 

function onFormButtonClick() { // set as onclick on a <button> 
    myhiddenfield.value = ... //value read from a textbox or something. 
    ... 
    myForm.submit(); 
} 
+0

내가 = '서버'RUNAT이없는 양식 태그에 속성. 그것은 asascx 페이지에서 간단히 작동하며 webpart에 의해로드 된 컨트롤이므로 aspnetForm을 감싸기 때문에 제출할 수 없습니다. –

+0

아, 실제 페이지를 제어 할 수 없습니다. 자바 스크립트를 사용하여 페이지에 양식을 삽입하고 제출할 수 있습니다. –

+0

어떻게해야합니까? 양식은 항상 aspnetForm 양식 내에 중첩됩니다. –