如何解决:无法将类型为“ System.Decimal”的对象转换为类型为“ System.String”的对象

时间:2019-03-28 21:13:46

标签: c# sql asp.net-core razor tag-helpers

我创建了一个具有十进制类型的两个属性的类,之后我创建了控制器并通过使用Visual Studio自动查看.....但是,当我输入Create Form的值时,出现此错误: 无法将类型为“ System.Decimal”的对象转换为类型为“ System.String”。

这是我的模型中小数变量的一部分:

[Display(Name = "رسوم الدورة")]
[StringLength(100, ErrorMessage = "العنوان طويل")]
[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
public decimal CourseFees { get; set; }

[Display(Name = "الشهادة")]
public Certificate Certificate { get; set; }

[Display(Name = "رسوم الشهادة")]
[StringLength(100, ErrorMessage = "العنوان طويل")]
[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
public decimal CertificateCost { get; set; }

这是创建文件中视图代码的一部分(仅小数部分):

    <div class="form-group">
        <label asp-for="CourseFees" class="control-label"></label>
        <input asp-for="CourseFees" class="form-control" />
        <span asp-validation-for="CourseFees" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="Certificate" class="control-label"></label>
        <select asp-for="Certificate" asp-items="Html.GetEnumSelectList<Certificate>()" class="form-control"></select>
        <span asp-validation-for="Certificate" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="CertificateCost" class="control-label"></label>
        <input asp-for="CertificateCost" class="form-control" />
        <span asp-validation-for="CertificateCost" class="text-danger"></span>
    </div>

1 个答案:

答案 0 :(得分:1)

删除StringLength属性。