Вычислить значения на основе выбора варианта - PullRequest
0 голосов
/ 15 января 2020

Я использую бритвенные страницы впервые. Я хочу реализовать логику c для вычисления значения на основе выбора опции.

cs html

<form name="paymentform"  method="post">
    <fieldset>

<label for="package">package:</label>
        <select asp-for="package" asp-items="Model.packagelist">
            <option value="">Pick one</option>
        </select>

<label for="amt">price:</label>
  </fieldset>
</form>

cs html .cs

{
namespace testproject
    [BindProperties]
    public class testModel : testModel
    {
   public int package  { get; set; } = 3;
        public List<SelectListItem> packagelist { get; set; }

 public void OnGet()
        {
            packagelist = new List<SelectListItem> {
        new SelectListItem { Value = "5", Text = "t1" },
        new SelectListItem { Value = "10", Text = "t2" },
        new SelectListItem { Value = "12", Text = "t3" },
    };
}
}

Я хочу рассчитать значение цены = сумма значения опциона и переменной х = 4. пожалуйста, направьте меня на реализацию этого.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

На стороне сервера вы можете использовать метод POST и вносить изменения. Сначала добавьте в модель новое свойство, например selectedpackage.

namespace testproject
    [BindProperties]
    public class testModel : testModel
    {
   public int package  { get; set; } = 3;
   public List<SelectListItem> packagelist { get; set; }
   public int selectedpackage { get; set; }
 public void OnGet()
        {
            packagelist = new List<SelectListItem> {
        new SelectListItem { Value = "5", Text = "t1" },
        new SelectListItem { Value = "10", Text = "t2" },
        new SelectListItem { Value = "12", Text = "t3" },
    };
}

. На стороне клиента вам нужно будет внести следующие изменения

    <form name="paymentform"  method="post">
    <fieldset>

<label for="selectedpackage">package:</label>
        <select asp-for="selectedpackage" asp-items="Model.packagelist">
            <option value="">Pick one</option>
        </select>

<label for="amt">price:</label>
  </fieldset>
</form>

На POST вы можете сделать это

public void OnPost()
    {
        var amount = selectedpackage + 4;
        //do whatever else you need to
    }
0 голосов
/ 15 января 2020

А как насчет добавления простой функции js при изменении выбора?

$('#package').change(function () {
        var x = 4;
        $('#amt').html("price:" + (parseInt($(this).val()) + 4));
    })
...