还是附几张图,不然我怕说不清楚
(controller)
Index.cshtml
WriteMessage.cshtml
ViewModel可能做的不是很好,但是我认为它没有出错,应该是在Controller里面出的错,但是还是没有找到错误原因。下面是报错信息。
我的理解是ViewModel就是一个模型而已,定义了某个model而已,不需要在里面加上初始化这样的函数。不知道是不是这个初始化函数造成的,你可以简化下ViewModel。
1 public class MessageViewModel 2 { 3 public string SenderName {get; set;} 4 public string ReceiverName {get; set;} 5 }
后,再试试。
在显示数据的时候是没有问题的,只有在提交数据操作的时候才报错,所以我觉得是controller里有问题,但还是没找出来
给MessageViewModel里加一个无参数的构造函数
public MessageViewModel(){}
楼上回答正确,WriteMessage 方法需要一个 MessageViewModel 类型的参数,系统会采用 MessageViewModel 的无参构造函数来实例化。
加了一个无参的构造函数以后,,之前那个报错没有了,但是又出现另外一个报错,
未将对象应用设置到对象的实例
你看看我大概是在哪些地方没写对的呢,谢谢~~
@akangmaker: MessageViewModel 的属性的初始值依赖于你的有参构造函数赋值,因此当使用无参构造函数的时候,这些属性并没有初始值,比如 Message 属性,因此,你不能在没有给 Message 属性赋值的情况下直接引用 Message 对象的属性。
或者你的message类没有无参构造函数