我们能用像这样的对象参数吗?
@page "/account/login/"
@page "/account/login/{Customer}"
@using Model
@(Customer?.Name ?? "Empty")
@code {
[Parameter]
public Customer Customer { get; set; }
}发布于 2019-11-01 19:38:39
不,只使用简单类型(int、string等)。我建议不要对字符串使用这种类型的绑定。作为URL的原因是保留字符被转换,除非它们在一个附加到URL末尾的查询字符串中。此外,如果您的字符串包含斜杠,blazor将截断该字符串。例如
导航到“/帐户/登录/测试/123”将导致id=test。
@page "/account/login/"
@page "/account/login/{id}"
@using Model
@(Customer?.Name ?? "Empty")
@code {
[Parameter]
public string id{ get; set; }
}有几种方法你可以克服这一点。
pages/components.
在这种情况下,我需要通过URL将一个复杂的标识令牌字符串发送到blazor组件中,我使用了一个查询字符串,并使用NavigationManager.Uri手动解析了该字符串。这篇文章已经足够长了,如果您想看到我的querystring解析示例,请告诉我。
希望这能有所帮助!
发布于 2021-04-30 17:54:56
尝试使用序列化。就像这样:
Person p= new Person();
@{ string json = JsonConvert.SerializeObject(p);
var link = $"OtherComponentName/{json}";
}记住:
@使用Newtonsoft.Json;
https://stackoverflow.com/questions/58452393
复制相似问题