出于我的应用程序的目的,我需要通过 URI 传递一些数据。因为它,用户可以轻松共享页面链接,所有数据都在里面编码。以下一切正常:
private void OnClickHandler()
{
var data = new List<DataModel>()
{
new()
{
Description = "This problem",
// Other fields
},
new()
{
Description = "Is annoying",
},
};
var rawData = System.Net.WebUtility.UrlEncode(System.Text.Json.JsonSerializer.Serialize(data));
Url = CHEMIN + rawData;
}
我得到一个 URL,我可以将它粘贴到另一个 Chrome 窗口,一切都非常有效。 当我尝试在我的 DataModel 中添加“Url”字段时出现问题
var data = new List<DataModel>()
{
new()
{
Description = "This problem",
Url = "https://stackoverflow.com/questions/73114505/set-muddrawer-width-to-100-on-mobile/",
},
new()
{
Description = "Is annoying",
Url = "https://stackoverflow.com/questions/",
},
};
当我尝试解析我得到的 URL 时,我遇到了浏览器问题,如下所示:
注意:我试过几个浏览器,结果相同。
我想我可以理解当您尝试向它提供带有 URI 的数据时,与 System.Net.WebUtility.UrlEncode 方法存在混淆。
有人能帮助我吗?非常感谢
根据本文档(https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-7.0#routing-with-urls-that-contain-dots) ,我们只需在服务器 Program.cs 文件中添加一行即可。
发题后才找到有点惭愧,两天来一直在寻找解决方案!