我得到"对象引用不设置为对象的实例"异常时,在部分视图部分使用以下代码,但相同的代码在模板中工作良好。不明白为什么?
这是一个非常普遍的问题。如果您遵循原型文档,那么获取这些值就不会有问题。
两件事:"Not set to a instance of a object"意味着你要求的是不存在的东西。我遇到过很多次这样的错误,每次都是事实,我的路径(例如,你的Model.Content
在这种情况下)是错误的。也许你的编辑器在另一个节点或者父节点或者后代节点等等。
第二点是:不要让razor"猜测"你需要的值的类型。而不是
Model.Content.GetPropertyValue("example")
尝试:Model.Content.GetPropertyValue<string>("example")
或:Model.Content.GetPropertyValue<int>("example")
这样,你就不会犯错误,例如当你要求一个int,但razor自己"猜测"你要求一个字符串。即使你的路径是正确的,也可能会把你的代码弄乱。
但是,首先检查您的路径。"未设置为对象的实例"通常意味着你请求的东西并不存在。可能需要不同的路径