我正在使用 ASP.NET MVC 4 创建一个 Web 应用程序。
我想在所有页面上显示用户的昵称,因此我必须将其加载到_layout.cshtml
中。
请注意,我正在手动存储用户的昵称。 (在我自己的数据库和我自己的表中。)
我可以通过Membership.GetUser().UserName
添加用户的用户名,但我想从数据库加载他的昵称并将其显示在_layout.cshtml
中。
如何做到这一点?
最佳答案
让我为您提供一个简单的解决方案: 在 Controller 中编写一个操作(我的是 CommonController):
public ActionResult NickName()
{
SqlConnection cn = new SqlConnection(cnstr);
SqlCommand cmd = new SqlCommand(cmdStr, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
string nickName = string.Empty;
while (dr.Read())
{
nickName = dr["nick_Name"].ToString();
}
dr.close()
return Content(nickName);
}
将以下行放在 _Layout 中您想要的任何位置:
nickname = @{Html.RenderAction("NickName", "Common");}
完成!
感谢@SergRogovtsev 的推荐:
nickname = @Html.Action("NickName", "Common")
首先询问: 您使用 Entity Framework 吗? 您可以使用 EF 或 ADO 在 _Layout 中使用分部 View 。 如果您的意思是无法使用 Entity Framework 访问 aspnet_membership 表,您应该以其他方式提出您的问题!
通过提供一些代码示例,让我更多地了解您的问题。
关于c# - 从 _layout.cshtml 中的数据库加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808254/