将参数从视图传递到控制器剃刀

时间:2012-02-23 11:43:34

标签: javascript jquery asp.net asp.net-mvc-3 razor

我想在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");
        }

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)


查看:在视图“类别中”参数通过“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);
}


答案 2 :(得分:0)

添加一个名为Id

的新路线值项目
<script type="text/javascript">
function Test() {

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

答案 3 :(得分:0)

在javascript函数中尝试此代码:

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

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

答案 4 :(得分: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>

并将商品ID绑定到您的输入

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