我有一个_Layout页面,在这个_Layout页面中,我正在调用Partial View,如下所示。
<div>
@{Html.RenderAction("_Account", "Home");}
</div>
_Account.cshtml
...
@if (User.Identity.IsAuthenticated)
{
<p class="navbar-text navbar-right"> ****I want to write here "UserName"****</p> }
如您所见,如果用户经过身份验证,我想编写userName。 (这是我的问题:))
正如您所料,我有一个登录控制器..
[HttpPost]
public ActionResult Index(UserModel model, string returnUrl)
{
// My codes for login ...
var response = _userService.UserGet(request.UserName,request.Password);
if(response != null)
{
ViewBag.UserName = response.User.Name;
}
// My another codes....
}
所以,这是我的问题。我想用这个&#34; ViewBag.UserName&#34;在_Account局部视图中。我不想用饼干。有没有办法去id?
答案 0 :(得分:0)
正如@Satpal所说
@if (User.Identity.IsAuthenticated)
{
<p class="navbar-text navbar-right">@ViewBag.UserName</p>
}
不是很简单吗?
答案 1 :(得分:0)
你可以这样做:
主要观点:
@Html.RenderAction("AccountPartial", "Home")
动作:
[HttpPost]
public ActionResult AccountPartial(UserModel model, string returnUrl)
{
// My codes for login ...
var response = _userService.UserGet(request.UserName,request.Password);
if(response != null)
{
ViewBag.UserName = response.User.Name;
}
// My another codes....
return PartialView("~/Views/Home/_Account.cshtml",model);
}
部分视图:
@if (User.Identity.IsAuthenticated)
{
<p class="navbar-text navbar-right">@ViewBag.UserName</p>
}
答案 2 :(得分:0)
只需使用@ User.Identity.Name获取用户名