带参数的Dotnet Core按钮重定向

时间:2018-11-07 11:14:45

标签: javascript c# .net-core

我正在制作一个Web API应用程序,它将数据填充到数据网格中。当前,我想要一个按钮,该按钮将使用附加参数调用我的webapi端点。

我的数据网格,按钮代码在下面。这是我剃刀页面代码的全部:

@(Html.DevExtreme().DataGrid<Batch>().ID("gridContainer")
    .Columns(columns =>
    {
        columns.Add().CellTemplate(
        @<text>
        @(Html.DevExtreme().Button()
              .ID("sendButton")
              .Text("Select Batch")
            .OnClick("function () { onItemClick(data); }"))
        </text>);
        columns.AddFor(m => m.BatchId).Caption("BatchId");
        columns.AddFor(m => m.CobId).Caption("Cob Id");                                                                        
        })                                                                                                            
        .DataSource(d => d.WebApi().Controller("Batches").LoadAction("GetAllEntries").Key("BatchId"))
)



<script>  

    var idValue;
    function onItemClick(data)
    {          
        DevExpress.ui.notify(data.Id);
        console.log(data.BatchId);

        idValue = data.BatchId;

         window.location.href = '@Url.Action("SeanTest", "BatchDatagrid", new {@id = idValue })';
    }

</script>

在我的脚本中,变量idValue包含要传递到URL中的值,但是当我尝试将其放入Url.Action时,它告诉我it doesn't exist in the current context

idValue传递到重定向操作中的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

@ Url.Action在服务器端处理。因此,不可能将动态值从客户端传递给它。但是,作为解决方法,您可以使用以下代码

window.location.href = '@Url.Action("SeanTest", "BatchDatagrid", new {@id = "ID"})'.replace("ID",idValue );

如果您愿意,应该将原始海报here

归功于此