使用作 PageModel 的对象的内部属性在 Razor Page 中可见

问题描述

我正在使用 Razor 页面和 .netcore 3.1 来构建应用程序。

我有一个具有各种属性的客户 VM162:7 Uncaught TypeError: Cannot read property 'click' of null at automation (<anonymous>:7:21) at <anonymous>:1:1

class

注意 public class Customer{ public int ID { get; set; } public string Name { get; set; } public decimal AffiliateCommissionRate { internal get; set; } .... more.... } 上的 internal get,它被设计为可反序列化但不可序列化...

这是来自本文最后一个建议:

enter image description here

我有一个页面,它使用 AffiliateCommissionRate 作为页面模型,并且是用于更新客户详细信息内部管理员使用的应用程序的表单。

这个页面一个使用 Razor 标签的表单,如下所示:

Customer

提交后,这些字段被序列化为 <input asp-for="AffiliateCommissionRate" /> 对象,该对象作为 JSON 发送到保存函数,需要反序列化该值,以便我可以将数据保存在数据库中。

然而 - 使用 POST 会在页面视图中出现错误

属性或索引器“Customer.AffiliateCommissionRate”无法在此上下文中使用,因为它缺少 get 访问器

我熟悉 internal get 并尝试将其添加[assembly: InternalsVisibleto("MyProject")] 文件中,但似乎没有解决

我需要这些字段以这种方式运行,以便在序列化时阻止它们可见,因为此应用程序还将这些类公开给不应访问某些字段的 API。

显然 Customer.cs 会阻止它暴露给 API,同时允许我的页面读取它,但在保存表单时它不会反序列化。

[JsonIgnore] 可以工作,但必须为每个我想要表现得像这样的字段添加一个额外的属性是一种痛苦,我不确定我将如何确定它是否是 API 的真/假响应打电话与否...

编辑

我目前在同一篇文章中使用第一个选项: https://www.linkedin.com/pulse/4-ways-make-property-deserializable-serializable-dean-xu

但是...我不喜欢它,因为我必须添加额外的字段...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)