无法将“System.String”类型的对象转换为“System.Int32”类型。关于 Blazor/Razor 路由参数
Posted
技术标签:
【中文标题】无法将“System.String”类型的对象转换为“System.Int32”类型。关于 Blazor/Razor 路由参数【英文标题】:Unable to cast object of type 'System.String' to type 'System.Int32'. on Blazor/Razor routing parameters 【发布时间】:2021-11-29 14:22:28 【问题描述】:我尝试使用 /somepage/Id 调用页面,其中 Id 是具有 int 属性的 [Parameter]
并且路由被称为字符串,它不应该隐式地将字符串转换为 int 吗?为什么它根本不起作用?我期望它会按原样识别参数...
我应该如何让路由中间件识别参数?即使在 MVC 中,这也可以正常工作...
页面路由
@page "/EditEmployee/Id"
链接
<a href="/EditEmployee/@Employee.EmployeeId" class="btn btn-primary m-1">Edit</a>
页面中的参数
[Parameter]
public int Id get; set;
结果是异常,页面没有加载
【问题讨论】:
始终在细节中包含异常。 【参考方案1】:做起来
@page "/EditEmployee/Id:int"
【讨论】:
作为评论,我让它动态停止异常,因为抛出它需要一个 int 到字符串的转换然后向后所以我认为 int.Parse 它不起作用并且它抛出了异常但我也按照你的建议做了以上是关于无法将“System.String”类型的对象转换为“System.Int32”类型。关于 Blazor/Razor 路由参数的主要内容,如果未能解决你的问题,请参考以下文章
提示:无法将类型为“System.DateTime”的对象强制转换为类型“System.String”。
无法将类型为“System.DateTime”的对象强制转换为类型“System.String”
无法将类型“System.String”的对象转换为类型“System.Byte []”错误 MYSQL NET CORE 3.1
无法将“System.String”类型的对象转换为“System.Int32”类型。关于 Blazor/Razor 路由参数
无法将“System.String”类型的对象转换为 C# 中的“Oracle.DataAccess.Client.OracleParameter”类型
无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“System.Collections.Generic.Dictionary`2[System.String,S