我正在一个网站上工作,一旦用户登录,他就可以检查一些锻炼。在ASP.NET Core的布局中使用用户标识
不过,我试图通过从布局到其他页面的用户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>
而且它不工作,我得到以下错误:
'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