2017-01-18 6 views
2

그래 ... 나는 asp.net mvc 도구와 함께 컨트롤러에서 함수를 실행할 수 있도록 dropdownlist를 연결하는 것에 대한 정보를 찾고 있습니다.컨트롤러에서 함수를 실행하기 위해 드롭 다운 목록을 연결하십시오.

$(function() { 
    $("#title").change(function() { 
     var selectedVal=$(this).val(); 
     $.getJSON("UserController/YourAction",{ id: selectedVal } , function(result) { 
      //Now you can access the jSon data here in the result variable 
     }); 
    }); 
}); 

당신이 JSON

public ActionResult YourAction(int id) 
{ 
    //TO DO : get data from wherever you want. 
    var result=new { Success="True", Message="Some Info"}; 
    return Json(result, JsonRequestBehavior.AllowGet); 
} 

를 반환하여 UserControllerYourAction라는 액션 방법 나는이를 사용할 때 그래서 아무것도 아니에요을 가정 ??? 내가 JSON이 무엇인지 모르지만 내가 어떤 일을 반환 내 응용 프로그램이 필요하지 않습니다 알고 ...

그래서 내가이 요소가 편집 양식에서 ... 시도 있었는지 :

을 편집 컨트롤러에서

$('#RES_TEST_ID').change(function() { 
    var CurVID = $(this).val(); 
    var IntVID = $(document.getElementById('BUVID')).val(); 
    //alert(CurVID); 
    //alert(IntVID); 
    debugger 
    $.getJSON("TEST_REQUESTController/CheckCTEST", { Int_TEST_ID: IntTID, Cur_TEST_ID: CurTID }, function (result) { 
    }); 
}); 
... 피곤이 모두 포스트 부분은 컨트롤러에이를 추가해야하는 위치 명시하지 않은 게시물로 섹션을 가져 오기 :

나를 위해
public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID) 
{ 
    if (Int_TEST_ID != Cur_TEST_ID) 
    { 
     var SelectedTEST = db.TEST_TEST_INFO.Find(Int_TEST_ID); 
     SelectedTEST.VI_STATUS = 1; 
     SelectedTEST = db.TEST_TEST_INFO.Find(Cur_TEST_ID); 
     SelectedTEST.VI_STATUS = 2; 
     var result = new { Success = "True", Message = "Some Info" }; 
     return Json(result, JsonRequestBehavior.AllowGet); 
    } 
    return null; 
} 

, 아무 일도 일어나지 않습니다. .. 나는 브레이크 포인트를 보려고하지만 그들은 결코 컨트롤러에 가지 않습니다. 다시 사용자가 편집 드롭 다운 목록에서 값을 변경하면이 실행하려면이 편집 컨트롤 아래에 게시물 및 가져 오기 섹션에서이 넣을. 여기에 무슨 일이 일어나고 있는지에 대해 누구나 공유 할 수있는 아이디어가 있습니까?

+3

을 ("UserController/YourAction"이 아니라)''/ User/YourAction''이 필요하지만, 항상'@ Url.Action ("YourAction", "User") ''를 사용하여 올바른 URL. 그리고 단순히 브라우저 도구를 사용하여 코드를 디버그하면 분명히 알 수 있습니다. –

+0

안녕하세요. stephen ... 404 오류가 나타나지 않습니다. javascript 디버그가 아닌 코드를 디버깅 할 때 디버깅하지 마십시오. 뒤에서 .... 그래서 함수를 호출하는 건지 모르겠다 ... 나는 정직하다면 내가하고있는 일을 잘 모른다 ... 그래서 나 역시 라틴계 다 .. 그래서 @와 슬쩍하지 마십시오. 물어볼 수 있다면 무엇을합니까? 많은 도움을 주셔서 감사합니다 ... 나는이 모든 제안을 시도해 볼 것입니다. 감사! – mcvdev

+0

브라우저 개발자 도구 (F12)를 열고 콘솔 탭을 보면 –

답변

0

컨트롤러에 대한 ajax 호출에서 컨트롤러 및 동작에 대한 경로 매개 변수를 수정해야합니다. "컨트롤러"이름은 프레임 워크에 의해 자동으로 이해됩니다. 따라서 FooController가 있고 Bar action 메소드로 경로를 지정하려는 경우 URL 경로는 "Foo/Bar"이됩니다.

$.getJSON("TEST_REQUESTController/CheckCTEST" ... 

해야 당신이 가져 오기 속성 장식과 함께 작업을 장식 할 수 있습니다 행동에도

$.getJSON("TEST_REQUEST/CheckChangeTEST" ... 

: 컨트롤러가`UserController`하고 당신의 방법은`YourAction 경우

[HttpGet] 
public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID) 
{ 
    //your code 
} 
+0

안녕하세요 justsomedude ... 아하 ... 위의 사용자는 @도 사용할 수 있다고 말했고 ...이 덕분에 ... 둘 다 시도해 보겠습니다! 도움을 주셔서 감사합니다 !! 왠지 내 대답에 +1을 줄 수는 없지만 ... 시스템이 내 시도를 거부합니다 ....하지만 가능하다면 +1 감사합니다! – mcvdev

관련 문제