如何在 ASP.NET Core 2.0 中使用 Razor Pages 处理 Ajax 请求
How to handle Ajax request with Razor Pages in ASP.NET Core, 2.0
下面我试图在 CustomerModel Razor 页面中创建一个 Post 请求操作方法/处理程序。
RazorPage 名称是 "Customer.cshtml"
绑定来自 Ajax 请求的下拉列表
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
<select class="form-control" id="CustomerID"
name="CustomerID"
asp-for="Customer.CustomerID"
asp-items="@(new SelectList(string.Empty,"CustomerID", "Name"))">
</select>
Ajax请求
I also tried to call only handler but it show error
<script type="text/javascript">
$(document).ready(function ()
{
$.ajax({
type: 'GET',
// we are calling json method
// /Pagename/ActionMethod
// /Pagename/Handler(OnGetListofCustomer)
url: '/Customer/OnGetListofCustomer',
contentType: "application/json",
success: function (data) {
$("#CustomerID").append('<option value="' + "0" + '">' + "Select State" + '</option>');
debugger;
$.each(data, function (i, state) {
$("#CustomerID").append('<option value="' + state.CustomerID + '">' + state.Name + '</option>');
});
},
error: function (ex) {
alert('Failed to retrieve states.' + ex);
}
});
});
页面模型
发出 Ajax 请求时出错
我认为您不能像那样访问剃刀页面操作方法。你能这样试试吗?
$.getJSON("/Customer?handler=ListofCustomer",function(data){
//Do something with the data.
});
因为要访问除默认 OnGet 或 OnPost 方法之外的任何方法,我们需要处理程序,运行-时间在内部映射到方法。
要调用处理程序,您需要添加处理程序关键字。
URL :- /Customer?handler=ListofCustomer.
URL :- /Razor 页面名称?HandlerName
下面我试图在 CustomerModel Razor 页面中创建一个 Post 请求操作方法/处理程序。
RazorPage 名称是 "Customer.cshtml"
绑定来自 Ajax 请求的下拉列表
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
<select class="form-control" id="CustomerID"
name="CustomerID"
asp-for="Customer.CustomerID"
asp-items="@(new SelectList(string.Empty,"CustomerID", "Name"))">
</select>
Ajax请求
I also tried to call only handler but it show error
<script type="text/javascript">
$(document).ready(function ()
{
$.ajax({
type: 'GET',
// we are calling json method
// /Pagename/ActionMethod
// /Pagename/Handler(OnGetListofCustomer)
url: '/Customer/OnGetListofCustomer',
contentType: "application/json",
success: function (data) {
$("#CustomerID").append('<option value="' + "0" + '">' + "Select State" + '</option>');
debugger;
$.each(data, function (i, state) {
$("#CustomerID").append('<option value="' + state.CustomerID + '">' + state.Name + '</option>');
});
},
error: function (ex) {
alert('Failed to retrieve states.' + ex);
}
});
});
页面模型
发出 Ajax 请求时出错
我认为您不能像那样访问剃刀页面操作方法。你能这样试试吗?
$.getJSON("/Customer?handler=ListofCustomer",function(data){
//Do something with the data.
});
因为要访问除默认 OnGet 或 OnPost 方法之外的任何方法,我们需要处理程序,运行-时间在内部映射到方法。
要调用处理程序,您需要添加处理程序关键字。
URL :- /Customer?handler=ListofCustomer.
URL :- /Razor 页面名称?HandlerName