【问题标题】:Receiving parameter in API method in Blazor Server project from GetFromJsonAsync call in Blazor WebAssembly Client project从 Blazor WebAssembly 客户端项目中的 GetFromJsonAsync 调用接收 Blazor 服务器项目中 API 方法中的参数
【发布时间】:2020-09-19 20:52:52
【问题描述】:

我的 Blazor 服务器项目中有一个控制器,我从客户端项目中的剃须刀页面调用它并传递一个参数,例如

在剃须刀页面中

var FlatData = await Http.GetFromJsonAsync<IEnumerable<TreeItem>>("TreeItem?Id=3FD09A3");

在服务器控制器中

[HttpGet]
public IEnumerable<TreeItem> Get(string tag)
{

    IEnumerable<TreeItem> treeItems =  Enumerable.Range(1, 11).Select(index => new TreeItem
    {
        ...
    })
    .ToArray();
    return treeItems;
}

TreeItem 是我的共享项目中定义的一个类。

我进入我的控制器方法 OK 并且可以返回数据 OK,但是我没有得到参数来优化数据。如何从“TreeItem?Id=3FD09A3”获取我的参数数据。我的 Get 方法上的“标记”参数始终为空。如何获取我的参数数据?

【问题讨论】:

    标签: c# blazor


    【解决方案1】:

    你必须匹配名字,区分大小写:

    [HttpGet]
    //public IEnumerable<TreeItem> Get(string tag)
    public IEnumerable<TreeItem> Get(string Id)   // because ?Id=3FD09A3
    

    【讨论】:

    • 谢谢!我只是我需要知道的。我本可以走了很长时间而没有想到这一点。你可以看到我是网络编程的新手。
    • @Henk 是对的。您必须将方法内的参数名称与查询字符串参数匹配,包括区分大小写。例如 - 如果您在查询字符串中传递“?tag=3FD09A3”,则方法参数必须是“Get(string tag)”。然后模型绑定将仅起作用。谢谢
    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2020-09-20
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多