2013-03-19 2 views
3

드롭 다운 목록에서 선택한 값을 @ html.action 경로 값으로 호출하는 방법. MVC3 면도기에서 다음 코드를 사용하고 있습니다. 동적으로 'eventid'를 dropdownlist selected value로 호출해야합니다.dropdownlist를 @ html.action 경로 값으로 선택한 값을

@Html.Action("FirmPassForum", "Conference", new { eventId = 69 }) 

답변

7

Html.Action 도우미가 서버에서 렌더링되고 클라이언트에서 드롭 다운 선택이 변경 될 수 있기 때문에 그렇게 할 수 없습니다. 한 가지 가능성은 AJAX 호출을 사용하는 것입니다. 기본적으로 드롭 다운의 .change() 이벤트를 구독하고 부분 뷰를 반환하고 DOM을 업데이트하는 일부 컨트롤러 액션에 AJAX 호출을 보낼 수 있습니다. 다음

<div id="container"> 
    @Html.Action("FirmPassForum", "Conference", new { eventId = 69 }) 
</div> 

과 :

시작 컨테이너에이를 배치하여

:

<script type="text/javascript"> 
    $(function() { 
     $('#id-of-your-dropdown').change(function() { 
      var eventId = $(this).val(); 
      $.ajax({ 
       url: '@Url.Action("FirmPassForum", "Conference")', 
       type: 'GET', 
       data: { eventId: eventId }, 
       cache: false, 
       success: function(result) { 
        $('#container').html(result); 
       } 
      }); 
     }); 
    }); 
</script> 

프랑이 [ChildActionOnly] 속성을 장식하지한다 당신의 FirmPassForum 조치를 작동합니다

public ActionResult FirmPassForum(int eventId) 
{ 
    MyViewModel model = ... 
    return PartialView(model); 
} 
0

이것을 사용할 수도 있습니다

`//var url = '@Url.Action("ActionName", "Controller")'; 

$.post("/Controller/ActionName?para1=" + data, function (result) { 
    $("#" + data).html(result); 
    ............. Your code 
});` 
관련 문제