2012-09-26 4 views
1

ASP.Net MVC3 응용 프로그램에 "사용자 설정"페이지가 있습니다. 이 페이지에는 멋진 자바 스크립트와 CSS가 포함되어 있습니다. 이 페이지에서는 사용자가 자신의 웹 사이트 설정을 변경하고 자체적으로 게시물을 통해이를 수행 할 수 있습니다.포함 된 양식이 포함 된 Jquery UI 대화 상자

이제이 페이지를 Jquery UI 대화 상자에 표시해야합니다. 나는 성공적으로 다음과 같은 자바 스크립트 코드를 사용하여이 작업을 수행 할 수 있었다

$(document).ready(function() { 
     $('#settings-link').click(function() { 
      var tag = $("<div></div>"); 
      $.ajax({ 
       url: "MyWebsite/MySettings", 
       success: function (data) { 
        tag.html(data).dialog({ modal: true }).dialog('open'); 
       } 
      }); 
     }); 
    }); 

사용자가 해당 설정을 변경하게하고 "제출"버튼을 클릭하면

을 다음과 같이 오전 데 문제가되면, jquery 대화 상자가 사라지고 배경 페이지에 다시 게시 페이지가 표시됩니다. 이상적으로, 사용자가 jquery 대화 상자 자체에 변경 사항과 다시 게시를 표시 할 수있게하고 싶습니다. 내가 어떻게 이것을 달성 할 수 있는지에 대한 아이디어가 있습니까?

+0

양식은 어디에 있습니까? 대화 상자 마크 업 안에 있습니까? – jrummell

+0

@jrummell - 내 양식은 "MyWebsite/Mysettings"URL의 html 코드 안에 깊숙이 삽입되어 있습니다. 현재 jquery 대화 상자에 전체 웹 페이지가 표시됩니다. –

+1

여기에 '제출'기능은 어디에 있습니까? 아이디어는 ** 정확히 ** 이미 표시된 것과 동일합니다. 너는 무엇에 어려움을 겪고 있는가? – Ohgodwhy

답변

0

AJAX를 사용하여 대화 상자 게시물 데이터 내부에 양식을 작성해야합니까? 눈에 거슬리는 AJAX를 사용합니까? 또한 jQuery UI 대화 상자에서 iframe을 생성하는지 확인하십시오. 개발자 도구 (F12)를 사용하십시오.

편집 :

  1. 는 AJAX 형태로 양식 선언 : 사용 @의 Ajax.BeginForm을()와 JQuery와에 링크를 추가

    당신이 방법으로 다음과 같은 사용할 수 있습니다 대화 상자 내부 후 결과를 표시합니다. 아직 완료되지 않은 경우 ajax-unobtrusive.js를 페이지에 추가하십시오. 대화 상자가 DIV에 ID를 부여 표시 자바 스크립트 내부

  2. 는 "폼 래퍼 - 사업부"에

이제 POST 결과가 표시 될 것이다 AJAX 옵션에서 var tag = $("<div id='form-wrapper-div'></div>");

  • 이 UpdateTargetId을 설정 래퍼 사업부를 포함 내부 대화 상자.

  • +1

    @ STO- 아니요, jquery UI 대화 상자가 iframe을 만들지 않습니다. 페이지를 iframe에 어떻게 표시합니까? 내 문제를 해결할 수 있다고 생각합니다 –

    +0

    내 대답을 편집했습니다. – STO

    +0

    감사합니다. 나는 iframe을 처음 시도했지만 작동했지만 iframe이 모달 대화 상자 안에 있고 이중 스크롤 막대와 여백이 산만 해졌기 때문에 결과가 마음에 들지 않았습니다. 대신에 눈에 거슬리지 않는 AJAX를 사용하기로 선택했는데 이제는 훌륭하게 작동합니다! 눈에 거슬리지 않는 AJAX를 통한 양식 게시로 페이지가 다시로드되지 않으므로 모달 대화 상자가 더 이상 닫히지 않습니다. –

    관련 문제