2012-02-23 4 views
0

cshtml 페이지의보기에서 컨트롤러로 매개 변수를 전달하고 싶습니다. 이것은 내가 가지고있는 코드 : 보기에서 컨트롤러 면도기로 매개 변수 전달

<script type="text/javascript"> 
    function Test() { 

     $.get(  
     "@Url.Action("UpdateReport/", "Report")"     
    ); 
    } 

</script> 

<h2>Reports</h2> 

@foreach (var item in Model) 
{ 
    <div>@Html.ActionLink(@item.Name, "ActionCall", "Report", new { Id = @item.Id }, null)</div><br /><br /> 
       <input type="button" class="button1" value="Insert" /> 
       <input type="button" class="button1" value="Delete" /> 
       <input type="button" onclick="Test()" class="button1" value="Update" />  
} 

나는 내가 @를 전달하고자하는 업데이트 버튼을 클릭

내가 가지고있는 JS 코드를 통해 컨트롤러 액션에 item.Id. 코드는 이제 컨트롤러 동작으로 넘어 가고 있지만 매개 변수는 없습니다. 매개 변수도 전달하고 싶습니다. 모든 조언을 사전에 감사합니다, Laziale의

public ActionResult UpdateReport(string name) 
     { 
      return View("Index"); 
     } 

답변

0

당신이 $ .post

<script type="text/javascript"> 
    function Test() { 

     var itemId = $('#MyButton').attr('itemid'); 
      var url = '@Url.Action("UpdateReport", "Outcome")'; 
      var data = { Id:itemId }; 
       $.post(url, data, function (result) { 
        var id = '#postedFor' + postId; 
        $(id).html(result); 

      });     
    ); 
    } 

</script> 

를 사용하여 입력

<input id="MyButton" itemid="@Html.Raw("postedFor" + Model.Id)" type="button" onclick="Test()" class="button1" value="Update" /> 
+0

@Javanga? 미리 감사드립니다. 내 게시물에서 컨트롤러를 찾으십시오. – Laziale

+0

Id의 데이터 유형이 문자열이고 제어기가 공용이어야합니다. ActionResult UpdateReport (string Id) { return View ("Index"); } – Jayanga

+0

그냥 데이터 유형을 확인 했습니까? 속성 이름은보기에서 전달하는 데이터와 동일해야합니다. – Jayanga

1
<script type="text/javascript"> 
    function Test() { 

     $.get(  
      "@Url.Action("UpdateReport/", "Report")", 
      {Id : @item.Id}     
     ); 
    } 
</script> 

나 :

<script type="text/javascript"> 
    function Test() { 

     $.get(  
      "@Url.Action("UpdateReport/", "Report", new {Id = item.Id})" 
     ); 
    } 
</script> 
0

아이디

<script type="text/javascript"> 
function Test() { 

    $.get(  
    "@Url.Action("Update", "Report", new { @id = item.Id })"     
); 
} 

0

이 코드를 시도라는 새로운 routevalue 항목을 추가 귀하의 자바 스크립트 functio에서 n :

$.get('Report/UpdateReport?paramName=paramValue', function(data) { 
    //Do something with "data" 
}); 

여기서 paramName은 컨트롤러 동작의 매개 변수 이름이며, value는 전달할 현재 값입니다. 컨트롤러에 의해 반환 된 데이터는 변수 "데이터"에 저장됩니다.

1


보기 항목 ID를 바인딩 할 수 있습니다 :를 매개 변수보기 "카테고리"에서 "admin"으로 컨트롤러로 전달됩니다.

@{ Html.RenderAction("Menu", "Nav", new { category = "admin" }); } 


컨트롤러 : 컨트롤러 「카테고리」 파라미터의 값 얻는다. 적절한 이드하는 방법을 지금 콘트롤러 측에서

public PartialViewResult Menu(string category, string menu = null) 
{ 
    IEnumerable<Menu> menus = repository.Menus 
    .Select(x => x) 
    .Where(x => (x.MenuCategory == category) 
    .OrderBy(x => x.MenuSequence).ToList(); 
    return PartialView(menus); 
}