微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用自动实现的属性时 C# 空引用异常 代码背景:问题:

如何解决使用自动实现的属性时 C# 空引用异常 代码背景:问题:

代码背景:

我在 Asp.Net Core 中有一个模型类,如下所示:

INSERT INTO payment (Id_student,Class,Status)
SELECT Id_student,"not_complete" AS Status
FROM student
WHERE Class = "A";

现在,如果在 namespace urlShortner.Models { public class urlData { public string longUrl {get; set;} public string shortUrl {get; set;} public int hitTimes {get; set;} = 0; public string creationTimeStamp {get; set;} } } 类中使用 Auto-Implemented 属性直接存储 viewmodel 就可以了,如下:

剃刀页面

POST request fields

视图模型:

<input asp-for="urlDataObj.longUrl"> 
.
.
.
<p style="color: white;">
    @ViewData["lo"]
</p>

如上所示,我有一个 Auto-Implemented 属性,它由 [BindProperty] public urlShortner.Models.urlData urlDataObj {get; set;} public void OnPost() { ViewData["lo"] = urlDataObj.longUrl; } 属性[BindProperty] POST 数据直接装饰到其中一个字段,比它晚使用 Razor Pagepage 上可见。
我试图避免这种情况,因为这是一个安全问题,用户可以轻松地将 ViewData 上的 form 操作为另一个字段的 page 数据.
我更改了以下代码

Razor 页面(已更改):

POST

viewmodel(已更改):

<input asp-for="longUrl"> 
.
.
.
<p style="color: white;">
    @ViewData["lo"]
</p>

现在,如果我使用 [BindProperty] public string longUrl {get; set;} public urlShortner.Models.urlData urlDataObj {get; set;} public void OnPost() { ViewData["lo"] = longUrl; // POST data is OK! urlDataObj.longUrl = longUrl; // Null reference exception will occurs! } 类型的 Object 而不是像这样的自动实现属性

urlShortner.Models.urlData

问题就解决了!


问题:

我可以简单地认为这个自动实现的属性有时会在程序编译后创建烘焙场,但不知道何时、如何等
另外,为什么用 public urlShortner.Models.urlData urlDataObj = new urlShortner.Models.urlData(); 数据填充属性可以,但用变量赋值不行?
请解释清楚(生命周期)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?