2014-04-30 4 views
0

ActionLink 및 ajax 호출을 사용하여 상위 페이지에 부분 뷰를 넣습니다. 문제는 내 컨트롤러이며 부분 뷰는 두 번 호출되며 두 번째 호출에서는 액션에 전달 된 매개 변수가 null입니다.왜이 매개 변수를 사용하여 매개 변수를 컨트롤러로 보내지 않고 호출합니까?

두 가지 버전의 ActionLink를 사용해 보았습니다. 하나는 컨트롤러를 한 번만 호출하지만 매개 변수는 null입니다. 두 번째 호출은 두 번 호출하고 두 번째 호출은 null입니다.

null 매개 변수를 전송하는 두 번째 호출을 방지하거나 두 번째 호출이 있어야 할 경우 어떻게 값을 유지할 수 있습니까? 여기

두 호출하게 링크입니다 :

$("a.studentName").on("click", function() { 
     var linkID = this.id; 
     var theProp = $(this).attr("href"); 
     alert(theProp + linkID); 

     var equalPosition = theProp.indexOf("="); 
     var pram = theProp.substring(equalPosition + 1); 
     alert(pram); 

     var parms = { data: linkID }; 

     $.ajax({ 
      type: "GET", 
      url: "/Controller/Action", 
      data: parms, 
      dataType: "html", 
      success: function (data) { 
       $("theTimes").html(data); 

      } 


     }); 

    }); 

답변

0

: 여기

 @Ajax.ActionLink(stdFName, "Action", "Controller", new { studentNumber = stdNum }, new AjaxOptions { UpdateTargetId = "theTimes", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, new { @class = "studentName", id = "linkNo" + appendId.ToString() }); 

는 하나의 호출을 링크입니다하지만 매개 변수가 여기에

@Ajax.ActionLink(stdFName, "Action", "Controller", new AjaxOptions { UpdateTargetId = "theTimes", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }); 

null 인을 스크립트의 첫 번째 액션 링크는 작성한 자바 스크립트를 호출하고 두 번째 액션 링크는 작성하지 않습니다. (당신은 두 번째 클래스에 클래스를 설정하지 않았습니다).

첫 번째 동작 링크는 JavaScript를 호출하고 자체 링크에서 두 번째 호출을 수행합니다. 그러므로 두 번의 호출. 나는 하나의 호출이 올바른 매개 변수가 확신하고 두 번째는 당신은 당신이 조치를 전달하는 매개 변수에 일치 할 필요가

널 :

var parms = { studentNumber : linkID };

당신에게 조치를 가정을 studentnumber

의 매개 변수가 있습니다

public action Action(string studentNumber){// do stuff and return partial view}

관련 문제