You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML中EF Core两级脚手架页面传递货运头ID参数失败如何解决

问题原因

你在asp-route-id中填写的{id:int}是路由模板的占位符语法,仅用于@page指令定义路由规则,无法直接被解析为当前页面的实际路由ID值,Razor会把它当作普通字符串处理,或是因为路由不匹配跳转到默认的Index页面。

解决方法

  1. 先在当前货运明细Index页面对应的PageModel类中,添加接收路由ID的绑定属性:
[BindProperty(SupportsGet = true)]
public int Id { get; set; }

如果不想修改PageModel,也可以直接在Razor视图中通过RouteData取当前路由参数。
2. 修改Create链接的代码,直接引用实际的ID值即可:

<!-- 用PageModel绑定的Id属性 -->
<a asp-page="./Create" asp-route-id="@Id">Create New</a>

<!-- 不修改PageModel的写法 -->
<a asp-page="./Create" asp-route-id="@RouteData.Values["id"]">Create New</a>
  1. 最后要确保货运明细的Create页面支持接收该ID参数,在Create页面顶部添加对应路由规则:
@page "{id:int}"

同时在Create的PageModel中定义同名的ID绑定属性,保存明细时将该ID赋值给明细关联的货运头外键字段,即可避免外键约束错误。

内容的提问来源于stack exchange,提问作者Todd Norrgard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:12:08