验证依赖于用户输入的百分比

时间:2017-01-17 20:30:00

标签: c# asp.net visual-studio

我无法在网上找到任何我想要做的事情,到目前为止我的尝试都没有用。

我希望用户使用表单输入价格和折扣。折扣不是设定金额,但应至少为输入价格的18%。

模型如下:

   [Required(ErrorMessage = "Please Enter Price")]
    [Display(Name = "Price")]
    public float Price { get; set; }

    [Required(ErrorMessage = "Please Enter the Discount. This must be    minimum 15% of cost.")]
    [Display(Name = "Discount")]
    public float Discount { get; set; }

我的观点是:

<div class="form-group">
    @Html.LabelFor(m => m.Price)
    @Html.TextBoxFor(m => m.Price, new { @class = "form-control" })
</div>

<div class="form-group">
    @Html.LabelFor(m => m.Discount)
    @Html.TextBoxFor(m => m.Discount, new { @class = "form-control" })
</div>

我的控制人是:

public ActionResult Add(Loan loan)
{
    try
    {
        if (loan.Discount < loan.Price / 100 * 18)
        {
            _dbLoan.Loans.Add(loan);
            _dbLoan.SaveChanges();
            return RedirectToAction("Index");
        }
        else
        {
            return ("Error");
        }
    }
    catch
    {
        return View("Error");
    }
}

如果用户输入的费用低于18%,我希望显示验证消息。任何指导将不胜感激。

2 个答案:

答案 0 :(得分:0)

import java.util.Random;
import java.util.Scanner;

public class dieClass
{
    public static void main(String []args)
    {
        Random gen = new Random();
        Scanner reader = new Scanner(System.in);


        System.out.println("How many times do you want to roll?");
        int rollamt = reader.nextInt();



        for (int i = 0; i < rollamt; i++)
        {
            int dice1 = gen.nextInt(6) + 1;
            int dice2 = gen.nextInt(6) + 1; 
            int total = dice1 + dice2;
            int [] arrayDice = new int [rollamt];

            for (int r = 0; r < arrayDice.length; r++)
            {
                arrayDice[r] = total;
            }

          System.out.println("sum is " + total);
        }
    }
}

应该是条件的公式。 如果price是或者更改为整数,则使用(例如)浮点数将其强制转换为除法。

答案 1 :(得分:0)

请参阅custom validators

您可以在其中实现自定义逻辑,并将其用作任何其他验证器