在 ASP.NET MVC C# 数据库中 首先,我在文本框中对值进行求和,但在数据库中它不会插入 SUM 结果

In ASP.NET MVC C# database First I am doing sum of values in textboxes but in database it does not insert the SUM result

我想在文本框中找到值的总和,然后在另一个文本框中显示总和,并将总和存储在数据库中。 使用下面的代码成功找到总和并将其显示在另一个文本框中但是它不会将总和存储在数据库中。

我检查了数据库,它显示在数据库的 TotalAvgHours 字段中输入了值 NULL。

[HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(TimePeriodViewModel timePeriodVM)
            {
                var timeperiod = new TimePeriod
                {
                 
                    TotalAvgHours = timePeriodVM.TimePeriod.TotalAvgHours,
                    
    }

查看

全部的
            <td>
        @Html.TextBox("TotalAvgHours", "", "{0:c}", new { disabled = "disabled", @class = "form-control", id = "res2" })
        <script type="text/javascript">

            function sum2() {
                var one = document.getElementById('a2').value || "0";
                var two = document.getElementById('b2').value || "0";
                var three = document.getElementById('c2').value || "0";
                var four = document.getElementById('d2').value || "0";
                var five = document.getElementById('e2').value || "0";
                var six = document.getElementById('f2').value || "0";
                var seven = document.getElementById('g2').value || "0";
                var eight = document.getElementById('h2').value || "0";
                var nine = document.getElementById('i2').value || "0";
                var ten = document.getElementById('j2').value || "0";
                var eleven = document.getElementById('k2').value || "0";
                var twelve = document.getElementById('l2').value || "0";
                var thirteen = document.getElementById('m2').value || "0";
                var fourteen = document.getElementById('n2').value || "0";
                var fifteen = document.getElementById('o2').value || "0";

                var result = parseFloat(one) + parseFloat(two) + parseFloat(three) + parseFloat(four) + parseFloat(five) + parseFloat(six) + parseFloat(seven) +
                    parseFloat(eight) + parseFloat(nine) + parseFloat(ten) + parseFloat(eleven) + parseFloat(twelve) + parseFloat(thirteen) + parseFloat(fourteen) + parseFloat(fifteen);
                if (!isNaN(result)) {
                    document.getElementById('res2').value = result;
                }
            }
            window.onload = sum2;

        </script>
    </td>
    
    
</tr>

TimePeriodViewModel

 public class TimePeriodViewModel
    {
        public IEnumerable<Personnel> Personnels { get; set; }
       //public Personnel Personnel { get; set; }
       public int PersonnelID { get; set; }
       
        public IEnumerable<DailyRegister> DailyRegisters { get; set; }
        public DailyRegister DailyRegister { get; set; }
        public TimePeriod TimePeriod { get; set; }

    }

时间段

 public partial class TimePeriod
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public TimePeriod()
        {
            this.DailyRegisters = new HashSet<DailyRegister>();
        }
    
        public int TimePeriodID { get; set; }
        public int PersonnelID { get; set; }
        public System.DateTime StartDate { get; set; }
        public System.DateTime EndDate { get; set; }
        public Nullable<bool> IsSignedAvgAgreement { get; set; }
        public Nullable<bool> IsSignedTimeSheet { get; set; }
        public string SignedAvgBy { get; set; }
        public string SignedTimeSheetBy { get; set; }
        public Nullable<System.DateTime> SignedTimeSheetDate { get; set; }
        public Nullable<decimal> TotalAvgHours { get; set; }
        public Nullable<decimal> TotalTimeSheetHours { get; set; }
        public Nullable<decimal> TotalOvertime { get; set; }
}

由于在文本框上应用了禁用属性 属性,因此您无法在 post 上获取它的数据,而是在文本框上使用只读属性 属性。

尝试:

 @Html.TextBox("TotalAvgHours", "", "{0:c}", new { @readonly = "readonly", @class = "form-control", id = "res2" })