2014-11-04 4 views
1

Url.Action을 사용하여 뷰에서 컨트롤러로 매개 변수를 전달하는 데 문제가 있습니다. 내가 URL을 통해 매개 변수를 보낼 것입니다 방법Url.Action :보기에서 컨트롤러로 매개 변수를 전달하는 방법?

public PartialViewResult Index_AddSearchCriteria(string search_criteria) 
     { 
      ViewModel.SearchCriteria = search_criteria; 

      return PartialView("SearchBar", ViewModel); 
     } 

을 : 컨트롤러에서

$('#searchForm').submit(function (e) { 
    e.preventDefault(); 

    $.ajax({ 
     url: '@Url.Action("Index_AddSearchCriteria", "Home", "search_criteria")', 
     type: 'POST', 
     dataType: 'html', 
     success: function (result) { 
      $('#SearchDiv').html(result); 
     } 
    }) 
}) 

: 내 스크립트에서

<form id="searchForm"> 
    <input type="text" name="search_criteria" /> 
    <input type="submit" value="Search" /> 
</form> 

<div id="SearchDiv"> 

</div> 

:

내 코드는보기에 다음이다 컨트롤러에서 매개 변수로 받아 들일 수 있도록?

답변

1

당신은 data: 매개 변수

var data = { search_criteria: $("search_criteria).val() }; // add id="search_criteria" to the textbox 
$.ajax({ 
    url: '@Url.Action("Index_AddSearchCriteria", "Home")', 
    type: 'POST', 
    data: data, 
    dataType: 'html', 
    success: function (result) { 
     $('#SearchDiv').html(result); 
    } 
}) 

를 사용해야하거나

$('#SearchDiv').load('@Url.Action("Index_AddSearchCriteria", "Home")', { search_criteria: $("search_criteria).val() }); 
로 단순화 할 수
관련 문제