Blazor server side Blazor路由对象参数
我们可以像这样对blazor使用对象参数吗Blazor server side Blazor路由对象参数,blazor-server-side,Blazor Server Side,我们可以像这样对blazor使用对象参数吗 @page "/account/login/" @page "/account/login/{Customer}" @using Model @(Customer?.Name ?? "Empty") @code { [Parameter] public Customer Customer { get; set; } } 不,仅限于简单类型(int、string等)。我建议不要对字符串使用这种类型的绑定。原因是URL具有保留字符,除非它
@page "/account/login/"
@page "/account/login/{Customer}"
@using Model
@(Customer?.Name ?? "Empty")
@code {
[Parameter]
public Customer Customer { get; set; }
}
不,仅限于简单类型(int、string等)。我建议不要对字符串使用这种类型的绑定。原因是URL具有保留字符,除非它们位于附加到URL末尾的查询字符串中,否则将转换这些保留字符。此外,如果字符串包含斜杠,blazor将截断该字符串。比如说
导航到“/account/login/test/123”将导致id=test
@page "/account/login/"
@page "/account/login/{id}"
@using Model
@(Customer?.Name ?? "Empty")
@code {
[Parameter]
public string id{ get; set; }
}
有几种方法可以克服这个问题
希望这有帮助 尝试使用序列化。大概是这样的: 人员p=新人员() 记住: @使用Newtonsoft.Json 使用“”格式
@{ string json = JsonConvert.SerializeObject(p);
var link = $"OtherComponentName/{json}";
}