2017-09-30 12 views
0

この行は、自分のIDが数値の場合にのみ機能します。Asp.Net Core 2.0:レイザービューが文字列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>のように値をハードコーディングしようとしたが、それだけで得た数であります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

@page "{id:int}" 

...ラインだった私は

@page "{id:alpha}" 

にこれを変更しなければならなかったし、その時点でルートがマッチしました。

このページをご利用いただきありがとうございます。Matthew P Jonesのhttps://exceptionnotfound.net/asp-net-core-demystified-razor-pages/このページでは、新しいRazorページでのルーティングの説明をわかりやすく説明しています。

関連する問題