c# - 如何从.net核心中的pagemodel cs文件将信息传递回剃须刀页面
问题描述
我想根据 user.identity.name 隐藏 cshtml 页面的某些部分。
我有应用程序配置文件,我从中成功检索了用户管理信息:
这是该代码的c#片段
public IActionResult OnGet()
{
string admin = _context.ApplicConfs.Select(s => s.AppAdmin).FirstOrDefault();
string badmin = _context.ApplicConfs.Select(s => s.BackAdmin).FirstOrDefault();
ViewBag.uadmin = admin;
ViewBag.ubadmin = badmin;
return ViewBag();
}
cshtml 代码当前执行以下操作:
@*@if (@User.Identity.Name == (ViewBag.uadmin) || @User.Identity.Name == (ViewBag.ubadmin))
{*@
其次是显示什么 html 不显示(有条件地)
这样的东西在 .net core MVC 中有效,但在 .net core razor 页面中无效。
如何将上面的管理字符串从 c# pagemodel 页面传递到 cshtml razor 页面,以便可以将当前的@user.identity.name 与管理字符串进行比较?
对不起,如果这是一个愚蠢的问题......
解决方案
您可以尝试使用 ViewData,这是一个演示:
TestHidden.cshtml.cs:
[BindProperty]
public User User { get; set; }
public IActionResult OnGet()
{
User= new User { Identity = new Identity { Name = "admin" } };
ViewData["uadmin"] = "admin";
ViewData["ubadmin"] = "badmin";
return Page();
}
类:
public class User {
public Identity Identity { get; set; }
}
public class Identity
{
public string Name { get; set; }
}
TestHidden.cshtml:
@if (@Model.User.Identity.Name == ViewData["uadmin"] || @Model.User.Identity.Name == ViewData["ubadmin"])
{
<h1>User.Identity.Name:@Model.User.Identity.Name</h1>
<h1>ViewData["uadmin"]:@Model.ViewData["uadmin"]</h1>
<h1>ViewData["ubadmin"]:@Model.ViewData["ubadmin"]</h1>
}
推荐阅读
- request-headers - 如何从 webhook 请求者获取 HTTPS 标头
- single-sign-on - 注册服务提供者时出现 SSOCircle 错误 0007
- vtd-xml - VTD-XML 元素片段不正确
- html - 单选按钮(作为按钮)流入框架
- javascript - 使用服务器结合网页和python程序的最简单方法是什么?
- php - session_destroy() 比我需要的早执行
- go - 如何使用 DLL 的序数值从 DLL 中查找过程?
- reactjs - 使用 React 本机导航重新启动应用程序时出现间歇性黑屏
- android - Web 推送通知是否可以在 Apache Cordova Android 应用程序中使用?
- python - Python 诅咒如何用 curses.setsyx(y,x) 改变光标位置?