2009-11-03 1 views
0

내 ASP.net MVC 응용 프로그램에 하나의보기와 하나의 컨트롤러가 있습니다.어떤 이벤트가 asp.net mvc 응용 프로그램에서 게시물을 다시 발생시키는 지 확인하는 방법

"제출"버튼 & 하나의 "취소"버튼이 있습니다.

아래 botton 중 하나를 클릭하면 작업이 실행됩니다.

AcceptVerbs (HttpVerbs.Post)

공공 ActionResult 결과()

{

}

이제 질문인지, 내가) (내 공개 ActionResult 결과 알고있는 방법입니다 "제출"또는 "취소"로 인해 다시 게시 된 경우 ??

답변

0

당신은 답을

function OnBeginRequest(sender, args) { 
     var postBackElement = args.get_postBackElement(); 
if ((postBackElement.id == '<%= btnSave.ClientID %>') 
    { 

    } 
} 
0

다음 단계로 문제를 해결할 수 :

난. 보기의 양식에 '취소'라는 숨겨진 필드를 놓습니다. 기본값 을 false로 지정하십시오..

ii. 취소 버튼에 대한 onclick 이벤트에서 다음 스크립트를 추가하십시오.

document.getElementById('cancel').value = true; document.getElementById('myForm').submit(); 

'myForm'을 양식의 이름으로 변경하십시오.

iii. 다음에 결과에 대한 메소드 서명을() 변경 :

public ActionResult Result(bool cancel) 

을 바인딩 모델을 통해 숨겨진 필드 '취소'의 값은 액션 메소드의 서명에 액세스 할 수 있습니다.

0

감사처럼 시도 할 수 있습니다. I가있어 또 하나 개의 솔루션, 당신의 "취소"버튼을 눌러 양식을 제출할 것을 제안

public ActionResult Result() 
    { 
     if (Request.Params.ToString().IndexOf("btnSubmit") > 0) 
      // 
     else 
      // 
    } 
0

. 이 문제를 해결하는 방법은 여러 가지가 있지만, 가장 간단한 방법은 버튼에서 이전 페이지로 돌아가는 javascript onclick 이벤트를 사용하는 것입니다. (history.go(-1)) 이것이 요구 사항을 충족시키지 못하면 탐색 할 특정 경로를 지정할 수도 있습니다. 가장 복잡한 것은 클라이언트 측의 클릭을 차단하고 어떤 경로를 결정할 것인지를 결정하는 것이지만, 일반적으로 다른 동작을 수행하는 폼에 여러 개의 제출 버튼을두고 싶을 때만 수행합니다. 이는 매우 드문 경우입니다.

관련 문제