C# 无法强制转换类型为';十进制';输入';System.String';。创建编辑视图后

C# 无法强制转换类型为';十进制';输入';System.String';。创建编辑视图后,c#,C#,在[HttpPost]或保存操作期间执行编辑视图时出现此错误 这是第一次保存对已编辑数据的更改,表单会转储上述错误 将一个字段从十进制改为字符串,并认为这是问题所在,但现在认为不是。在数据库中进行更改-然后从以下位置编辑模型: public Nullable<decimal> F_RENO { get; set; } 在元数据中,我有: [Display(Name = "R.E. NO.")] [StringLength(3)] public str

在[HttpPost]或保存操作期间执行编辑视图时出现此错误

这是第一次保存对已编辑数据的更改,表单会转储上述错误

将一个字段从十进制改为字符串,并认为这是问题所在,但现在认为不是。在数据库中进行更改-然后从以下位置编辑模型:

    public Nullable<decimal> F_RENO { get; set; }
在元数据中,我有:

    [Display(Name = "R.E. NO.")]
    [StringLength(3)]
    public string F_RENO;
还为表格/字段编辑了从十进制到字符串的
MTSMODEL.EDMX

还有别的地方我错过了吗?是否应从
.EDMX
中删除表格,然后重新添加


在我试图编辑唱片之前,一切似乎都正常

问题出在该模型的元数据中。当完全删除Models.Metadata.mts_aggtestmetadata编辑视图能够保存编辑时,我的模型名为mts_aggtest。在90+个字段中的一个字段中,数字字段或类似字段上可能有[StringLength(xx)]。糟糕的编程没有足够的测试

Nullable
string
是完全不同的东西。还有其他部分会导致问题。您不能仅仅通过将类型更改为字符串来更改它。您到底从哪里得到错误?什么是堆栈跟踪?什么是
F_RENO
?为什么你认为它应该是一个字符串而不是一个小数点?你应该在esmx文件中使用“从数据库更新模型”选项F_RENO是常驻工程师编号-除了现在他们希望它是字母数字,这样可以有类似C01的内容。之前,它是SQL中的一个数字(2),我将它改为varchar(3)。
    [Display(Name = "R.E. NO.")]
    [StringLength(3)]
    public string F_RENO;