此行仅在我的id为数字时有效。
<a asp-page="./Edit" asp-route-id="@item.Id">Edit</a>
在一个页面上,我需要它是一个字符串。
如果是数字,则生成为
<a href="/Users/Edit/1234">Edit</a>
但是当它是一个字符串时,它会被生成为
<a href="">Edit</a>
我尝试像<a href="/Users/Edit/1234">Edit</a>
那样对这个值进行硬编码,但它只得到了404。
我在ASP.NET Core 2.0 Razor页面上使用默认路由...
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id}");
});
编辑页面设置为......
public async Task<IActionResult> OnGetAsync(string id)
我该如何解决这个问题?
答案 0 :(得分:3)
在我的编辑页面的顶部是行......
@page "{id:int}"
我必须将此更改为
@page "{id:alpha}"
此时路线已匹配。
感谢Matthew P Jones撰写的这个页面https://exceptionnotfound.net/asp-net-core-demystified-razor-pages/,它提供了一个易于理解的使用新Razor页面进行路由的解释。
答案 1 :(得分:0)
对于字符串,只需使用: @page“ {id?}
,您应该能够在相应方法中检索id(字符串)的值。