1

我正在开发一个 MVC 应用程序。我想创造员工。当我创建员工时,我会添加 1-10 之间的等级。我希望这个排名乘以恒定的工资系数。例如,我创建了一个等级为 5 的员工。在创建它时,我希望等级 5 乘以一个恒定的工资系数,例如 1.125。

我的模型:

public class Employee
    {
        public int Id { get; set; }
        [DisplayName("First Name")]
        [Required]
        public string FirstName { get; set; }
        [DisplayName("Last Name")]
        [Required]
        public string LastName { get; set; }
        [DisplayName("Rank")]
        [Range(1, 10)]
        [Required]
        public decimal Salary { get; set; }
        public bool IsCEO { get; set; }
        public bool IsManager { get; set; }
        public int ManangerId { get; set; }
    }

这是我的控制器中的创建功能

public async Task<IActionResult> AddEmployee([Bind("Id,FirstName,LastName,Salary,IsCEO,IsManager,ManangerId")] Employee employee)
        {
            //Employee CalculateSalary = _context.Employees.FirstOrDefault(
            //    s => s.Salary == CalculateSalary.Salary);

            
            if (ModelState.IsValid)
            {
                _context.Add(employee);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
            return View(employee);
        }

关于我如何做到这一点的任何想法?这可以在我的控制器或其他东西中完成吗?也许某种帮助类?

4

1 回答 1

0
    public async Task<IActionResult> AddEmployee([Bind("Id,FirstName,LastName,Salary,IsCEO,IsManager,ManangerId")] Employee employee)
            {
                //Added this code
                var coefficent = (employee.IsCEO) ? 2.725 : (employee.IsManager) ? 1.725 : 1.125;
                employee.Salary = Convert.ToDecimal(coefficent) * employee.Salary;
                
                if (ModelState.IsValid)
                {
                    _context.Add(employee);
                    await _context.SaveChangesAsync();
                    return RedirectToAction(nameof(Index));
                }
                return View(employee);
            }
于 2021-04-11T11:41:55.840 回答