【问题标题】:Unable to cast object of type 'System.String' to type 'System.Int32'. on Blazor/Razor routing parameters无法将“System.String”类型的对象转换为“System.Int32”类型。关于 Blazor/Razor 路由参数
【发布时间】: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; }

结果是异常,页面没有加载

【问题讨论】:

  • 始终在细节中包含异常。

标签: razor razor-pages blazor-server-side razorengine


【解决方案1】:

做起来

 @page "/EditEmployee/{Id:int}"

【讨论】:

  • 作为评论,我让它动态停止异常,因为抛出它需要一个 int 到字符串的转换然后向后所以我认为 int.Parse 它不起作用并且它抛出了异常但我也按照你的建议做了
猜你喜欢
  • 2021-10-25
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
相关资源
最近更新 更多