我正在使用c#以及将视图模型从控制器传递给视图的viewmodel.
在我的视图模型中,以下内容似乎按照预期的方式工作,因为它将描述信息从视图传递回控制器:
public string Description { get; set; }
public string Description
为什么
{get;组; }
很重要?
解决方法
我不太了解asp.net MVC / Razor,但您的2个代码示例之间有重要的区别.
public string Description { get; set; }
创建一个属性,一旦编译,在类中有一个生成的私有字段,get / set方法访问该字段.使用{get; set;}声明的属性相当于:
private string _description; public string Description { get { return _description; } set { this._description = value; } }
但是以下内容:
public string Description;
创建一个简单的公共字段.
我的猜测是,剃刀使用反射来从viewmodel获取值,它可能会查找一个属性,而不是一个字段.所以它确定属性不存在,因此返回null