Post 方法在 ASP.NET Core Razor 页面中不起作用
如果您可以包含代码片段而不是图像,那就更好了。但是,根据您的场景和描述,可以说,它可以通过任何一种方式修复,
您可以在 jquery 函数中获取属性值,然后发布到您的 razor 页面处理程序,或者您可以直接反序列化您的表单值并发布到页面处理程序。
让我们实际看看如何在 razor 页面中使用 ajax 实现 post 请求:
演示模型:
public class DemoModelClass
{
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
Razor.cs 文件:
public class AjaxPostRequestModel : PageModel
{
[BindProperty]
public DemoModelClass? FormValue { get; set; }
public void OnGet()
{
}
public ActionResult OnPost()
{
var checkSubmittedVaue = FormValue;
// Process data as needed
// Call your database layer
return new JsonResult(new { success = true });
}
}
Razor.cshtml:
@page
@model RazorPageDemoApp.Pages.AjaxPostRequestModel
@{
}
<form method="post" class="col-sm-6">
<div class="form-group row">
<label asp-for="FormValue.FirstName" class="col-sm-3 col-form-label"></label>
<div class="col-sm-7">
<input asp-for="FormValue.FirstName" class="form-control">
</div>
</div>
<div class="form-group row">
<label asp-for="FormValue.LastName" class="col-sm-3 col-form-label"></label>
<div class="col-sm-7">
<input asp-for="FormValue.LastName" class="form-control">
</div>
</div>
<div class="form-group row">
<div class="col-sm-7 offset-sm-3">
<button class="btn btn-primary" id="submit">Submit</button>
</div>
</div>
</form>
@section scripts {
<script>
$(function () {
$('#submit').on('click', function (evt) {
evt.preventDefault();
$.post('', $('form').serialize(), function () {
alert('Razor page submitting form value using jQuery');
});
});
});
</script>
}
输出:
注意:更多详情请参考此官方文档。