2012-02-23 172 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

可以使用$。员额

<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> 

和项目ID绑定到你的输入

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

@Javanga现在如何得到正确的ID?提前致谢。请在我的帖子中找到控制器。 – Laziale 2012-02-23 12:15:15

+0

如果Id的数据类型是字符串,那么控制器应该是公共的ActionResult UpdateReport(字符串Id) { return View(“Index”); } – Jayanga 2012-02-23 12:24:28

+0

您是否注意到数据类型和属性名称应与您从视图中传递的数据相同 – Jayanga 2012-02-23 12:25:31

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

添加新routevalue项目,名为Id

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

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

0

试试这个代码在你的JavaScript功能n:

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

其中paramName是控制器操作中参数的名称,值是您希望传递的当前值。控制器返回的数据放置在变量“数据”中。

1


查看:在查看“类别”参数与“admin”一起传递给控制器值

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


控制器:在Controller “类别”参数的值被获得。

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); 
} 


在控制器端
相关问题