私はWebサイトで作業しています。ユーザーがログインすると、いくつかのトレーニングをチェックすることができます。ASP.NETコアのレイアウトでユーザーIDを使用
しかし、私は
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li>
<a class="page-scroll">Profile</a>
</li>
<li>
@Html.ActionLink("Workouts", "Index", "Routines", new {id = Model.UserID })
</li>
<li>
<a class="page-scroll">Evaluation</a>
</li>
<li>
<a class="page-scroll">Nutrition</a>
</li>
<li>
<a class="page-scroll">Services</a>
</li>
<li>
<a class="page-scroll">Membership</a>
</li>
</ul>
</div>
を以下そして、それが動作していないとして、他のページにレイアウトからユーザーIDを渡すためにしようとしている、私は次のエラーを取得する:
'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable' does not contain a definition for 'UserID'
しかし、私のモデルはUserID
のプロパティを持っています。私はそれがSQL上で正しく動作していることがわかります。たとえそこからHTML.ActionLink
を取り出すとしても、レイアウトからその値を渡そうとすると動作しません。
これを解決する方法の提案はありますか?私はここまで読んできましたが、今のところ解決策はありません。
私は間違った方法で問題に近づいている可能性があります。そのユーザーの情報にアクセスするために、ログインしたユーザーのIDを複数のコントローラーに正しく渡す方法はありますか?
なぜ周りのIDを渡しますか?私は、現在ログインしているユーザーを取得し、その情報を取得するために必要な任意の場所に依存関係注入を使用するサービスを作成します。 – Becuzz
コードに正しいアセンブリ参照がありますか?Microsoft.EntityFrameworkCoreを使用していますか? (そして、System.Linq;を使用して - LINQを使用している場合) – NBaua
@Becuzzそれは実際にはきちんとした解決策です。それには欠点はありますか?私はそれを実装し、結果をポストしようとします。 – LeinadDC