我有4页的布局,在标题我需要访问登录管理员的名称。如何在布局开始时在管理员中访问该数据库模型我添加了
var sdegree = 0;
$(window).scroll(function() {
sdegree ++ ;
sdegree = sdegree + 2 ;
var cwRotate = "rotate(" + sdegree + "deg)",
ccwRotate = "rotate(" + (-1 * sdegree) + "deg)";
$(".move1").css({"-moz-transform" : cwRotate, "-webkit-transform" : cwRotate});
$(".move2").css({"-moz-transform" : ccwRotate, "-webkit-transform" : ccwRotate});
});
从管理员访问姓名时我正在写
@model ProjectName.Models.Admin
它给出了错误,如何以正确的方式访问布局中的该属性,并且它不能是局部视图,它应该是布局,所以请帮助
答案 0 :(得分:1)
正如@Stephen Muecke在他对你的问题的评论中所说,你可以通过更多方式做到这一点。我建议你保持你的布局视图没有模型。否则,正如@Stephen Muecke所提到的,你必须为使用相同或派生类型的布局的每个视图制作模型类型,这会给代码增加不必要的复杂性。
另一种方法是在您想要呈现用户名的位置在布局视图中调用HtmlHelper.Action(...)
或HtmlHelper.RenderAction()
。例如:
布局页面:
...
<div class="admin-name">
@{ Html.RenderAction("AdminName", "Partial"); }
</div>
...
添加控制器:
public class PartialController : Controller {
[ChildActionOnly] // action cannot be requested directly via URL
public ActionResult AdminName() {
string adminName = ...; // assign value to adminName variable
return Content(adminName);
}
}
答案 1 :(得分:0)
您需要在应用程序中的这么多页面中登录用户详细信息,因此最好在Session 中存储登录的用户详细信息,并且您可以在任何视图/部分视图中检索会话值。
其他解决方案:
使标题部分视图并从布局
调用Html.RenderAction("actionName", "controllerName")
答案 2 :(得分:0)
在控制器中创建一个返回部分视图的操作方法
控制器操作方法
[HttpGet]
public ActionResult Header()
{
HeaderModel HM = new HeaderModel()
// Your user information in HeaderModel
return PartialView("Header", HM)
}
_layout.cshtml
<body>
<div>
@{Html.RenderAction("Header", "ControllerName");}
</div>
</body>
我希望这能解决你的问题。