Я новичок в Razor Pages. Когда пользователь выбирает поле из выпадающего меню, я хочу вернуть это значение в переменную c#. Насколько я понимаю, это должно быть сделано с помощью вызова ajax, но я не могу заставить работать вызов ajax.
Я запутываюсь относительно того, каким должно быть поле ajax url. Также сбит с толку вопрос о том, нужен ли method="POST" typeof="submit" asp-page-handler="SelectedCalculation"
или находится в нужном месте.
Index.cs html:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="dropdown text-center" style="position: center">
<select method="POST" typeof="submit" asp-page-handler="SelectedCalculation" id="dropdownSelected" name="SelectedCalculation">
<option style="display:none" value="value">Select a calculation type</option>
<option style="display:@Model.PmsVisible; font-weight: bold;" value="PMS">PMS</option>
<option style="display:@Model.UkpmsVisible; font-weight: bold;" value="UKPMS">UKPMS</option>
<option style="display:@Model.RciVisible; font-weight: bold;" value="RCI">RCI</option>
</select>
</div>
Обработчик и Ajax call:
(function ($) {
$(document).ready(function () {
$("#dropdownSelected").change(function () {
var selectedCalculationType = $("#dropdownSelected option:selected").val();
aj("Filter", "", selectedCalculationType);
})();
});
})(jQuery)
function aj(pageName, retFunc, args, failedCallBack) {
var retval;
retval = $.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: $(this).attr("formaction"),
data: args,
processData: false,
dataType: "json",
success: retFunc,
error: function (a, b, c) {
failedCallBack(a, b, c);
}
});
}
Filter.cs html .cs (где я хочу вернуть значение из ajax call):
public ActionResult OnPostSelectedCalculation(string data)
{
var t = new JsonResult(data);
return new JsonResult(data);
}