2013-08-14 2 views
1

MVC에서 컨트롤러의 기본보기를 사용하면 인덱스의 항목을 선택하고 해당 ID를 사용하여 특정 편집 페이지로 이동하여 편집 페이지에 연결할 수 있습니다.MVC javascript 리디렉션 페이지가 작동하지 않습니다.

이 MVC 편집 페이지에서 드롭 다운의 변화에 ​​반응하는 자바 스크립트가 있습니다. 드롭 다운은 색인 페이지에서 사용할 수있는 하위 ID의 하위 집합을 나타내며 일반적으로 다른 사람이 현재 표시된 것과 다른 ID를 선택합니다.

컨트롤의 포스트 백이 C#에서 올바르게 작동하며 id와 관련된 관련 모델을 찾을 수 있습니다. C# 컨트롤러 측면에서는 모두 올바르게 나타납니다. 그러나 동일한 편집 페이지로 리디렉션하려고 시도하지만 다른 ID (드롭 다운의 페이지)를 사용하면 페이지가 다시 아약스 호출로 되돌아갑니다.

Ajax 호출을 "단락"하여 반환하지 않는다는 것을 알 수 있지만 C#을 편집 페이지로 리디렉션 할 수 있습니다 (요소가 인덱스에서 선택 될 때와 마찬가지로). 페이지). 사전에

감사합니다,

조셉 강아지

+0

코드를 게시 할 수 있습니까? 컨트롤러와 클라이언트 측 JavaScript 모두. –

+0

코드를 보여주십시오. –

답변

1

당신이 아약스 requet을하는 경우, 당신은 리디렉션 할 수있는 방법을 구현해야한다. 아약스 프로토콜에 따라 ... 당신은 json을 돌려주고 있습니까? HTML ...

JSON을 반환하는 것은,이 어떠했는지를 말하는 당신의 응답이 리디렉션 대답에 플래그를 추가 할 수 있으며, JS에서 리디렉션 경우 :

에서는 window.location = URL

0

확인,이 이것을하는 적어도 1 가지의 방법.

자바 스크립트 : var에 MyControllerUrlSettings = { MyControllerPrepareModifyXInfoUrl : '@의 Url.Action ("PrepareModifyAssetInfo", "Y", 새 {x_txt = "PARAM"}

컨트롤러와 X를 편집 가정은 YController 이름) ' }

한 다음 드롭 다운 변화를 처리하기 위해 자바 스크립트가 있습니다

$('#ModelXList').change(function() { 
     //// alert('Change detected'); 
     if ($("#ModelXList").val() != "") { 
      //// alert('Reached here'); 
      var XNbrString = $("#ModelXList").val(); 
      var trimmedXNbrString = $.trim(XNbrString); 
      //// debugger; 
      if (trimmedXNbrString != "") { 

       var url = MyControllerUrlSettings.MyControllerPrepareXInfoUrl; 
       window.location.href = url.replace('__param__', trimmedXNbrString); 
      } 
     } 
     else { 
     } 
    }); 

Fi를

public ActionResult PrepareModifyXInfo(string XNbr_txt) 
     { 
      // we cannot save anything here to cdll_cdcloanerlist; 
      // static variables must be used instead. 

      /// .... do what you have to do.... 

      return RedirectToAction("ModifyEdit", new { XNbr_txt = XNbr_txt }); 
     } 

참고 : nally는 컨트롤러, 방법이 모든 것이 일반 될 수 있도록 고유의 이유로, 나는 구문의 일부를 변경, 따라서 위의 코드를 약간에게 작업을 할 수 있습니다 ,하지만 작동합니다

대체 답변도 정말 환영합니다!

관련 문제