Я не могу получить свойство Price в приведенном ниже примере с бритвой для обновления после выполнения OnPostOrder()
. Я написал этот пример представления, чтобы сделать следующее:
- При изменении списка выбора товаров отправьте ProductForm, используя jquery's
submit()
.
- Используйте
asp-page-handler
, чтобы нажать OnPostOrder()
при отправке ProductForm. Примечание : в моей реализации это работает, извиняюсь, если в моем примере есть проблема с синтаксисом.
- Я получаю все параметры продукта из пользовательской статической функции, а затем получаю соответствующий продукт по productid.
- Я установил цену соответствующего товара в свойстве Price. Однако это не обновляет свойство Price.
Пример просмотра:
@page
@{
@functions{
[BindProperty] public string Product { get; set; }
[BindProperty] public decimal Price { get; set; }
public void OnPostOrder()
{
Price = 25.00;
}
}
List<ProductOption> productOptions = AdminUtil.GetProductOptions();
SelectList productOptionSelectList = new SelectList(productOptions, "ProductId", "Name");
}
<form method="post" id="ProductForm" asp-page-handler="order">
Product: <select asp-for="Product" asp-items="@productOptionSelectList"></select> <br />
Order Amount: <input asp-for="Price" /> <br />
</form>
@section Scripts {
<script>
$(function () {
$('#Product').on('change', function () {
$("#ManualOrderForm").submit();
});
});
</script>
}
Я новичок в бритвенных страницах, поэтому, если это дублирующий вопрос, пожалуйста, укажите мне правильное направление. Мне не удалось найти сопоставимый пример, но, возможно, я не ищу правильные термины.
Одной из причин, по-видимому, является то, что asp-for
генерирует атрибуты HTML name
и value
. Но когда я отлаживаю страницу после OnPostOrder()
, я могу нажать <input asp-for="OrderAmount" />
.