2017-10-06 99 views
2

下面我正在嘗試在CustomerModel Razor Pages中創建一個Post Request to Action方法/處理程序。如何在ASP.NET Core 2.0中使用Razor Pages處理Ajax請求

RazorPage名稱是 「Customer.cshtml」

從Ajax請求綁定DROPDOWNLIST

<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請求

我也試過只調用HANDL呃,但它顯示錯誤

<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); 
      } 
     }); 
}); 

PageModel

CustomerModel

錯誤,同時使Ajax請求

enter image description here

+0

還記得設置防僞令牌看到:https://stackoverflow.com/questions/46410716/example-ajax-call-back- to-an-asp-net-core-razor- –

回答

3

我認爲你不能訪問這樣的剃鬚刀頁面操作方法。你可以這樣試試嗎?

$.getJSON("/Customer?handler=ListofCustomer",function(data){ 
    //Do something with the data. 
}); 

因爲訪問除默認使用onGET或我們需要處理onPOST等方法之外的任何方法,其中運行時間在內部映射到方法。

+0

感謝您的回答@Anuraj – Saineshwar

1

要調用處理程序,您需要添加處理程序關鍵字。

URL: -/Customer?handler = ListofCustomer

網址: - /剃刀頁面名稱HandlerName

jquery code snippet for calling Get Request