我的 .cs 文件中有以下代码:[BindProperty]public ApimSubscriptionRoot apimSubscriptions { get; set; }...这允许我在我的 Razor 视图中访问对象的属性:@Model.apimSubscriptions.someProperty...但是将它定义为一个字段也适用于我能够在我的视图中显示对象的属性:public ApimSubscriptionRoot apimSubscriptions;背后的剃刀代码(控制器):public async Task<IActionResult> OnGet() { (some code...) apimSubscriptions = JsonConvert.DeserializeObject<ApimSubscriptionRoot>(contents); return Page();}剃刀页面(查看):@page@model Subscriptions@{ ViewData["Title"] = "Your subscriptions"; ViewData["ActivePage"] = ManageNavPages.Subscriptions;}<h4>@ViewData["Title"]</h4><div class="row"> <div class="col-md-12"> @if (Model.apimSubscriptions.value.Length == 0 || Model.apimSubscriptions == null)任何关于为什么的解释将不胜感激。
1 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
一个有点老的问题,但无论如何:BindPropertyAttribute
允许您访问在OnPost
方法视图中输入的值,即。在这种情况下,绑定代表从视图到模型的绑定。模型类中的所有公共属性 getter 和字段都可以在视图中访问,因为它们被认为只是 Razor 代码使用的对象实例。
BindPropertyAttribute
是必需的,因为在提交和调用表单时会创建一个新的模型对象OnPost
,然后该属性会指示 Razor Page 将表单中的相应值设置为匹配的属性。
- 1 回答
- 0 关注
- 244 浏览
添加回答
举报
0/150
提交
取消