将值从OnGet操作方法返回到剃刀页面

时间:2019-11-06 02:05:29

标签: jquery asp.net-core asp.net-ajax razor-pages

我有一个select标记,它的onchange将进入其中包含存储过程的OnGet动作。我希望能够获取该存储过程返回的任何值并将其返回到另一个select标记。

当我调试时,onchange转到OnGet操作,但是由于某种原因它没有得到值。我正在使用ajax方法到达服务器端并调用OnGet操作。我试图发出测试警报,以查看是否能够获取数据,但仍然无法获取数据。

我的选择标签

//First select on change
<select id="driverselect" asp-for="TripNumber.UserDriverID" asp-items="Model.UserDrivers" class="form-control">
     <option value="">Select a driver</option>
 </select>

//Second select where value from stored procedure should go
<select id="vehicleselect" asp-for="TripNumber.VehicleType" asp-items="Model.VehicleList" class="form-control">
     <option value="">Select a vehicle</option>
</select>

我的jquery ajax

$("#driverselect").on("change", function () {                
      $.ajax({
           type: 'GET',
           url: '@Url.Page("TripTicketEntry","OnGetVehicleAssign")',
           contentType: 'application/json',
           data: { UserDriverID : UserDriverID },
           success: function (data) {
              alert(data.test);
           }
       });
});

我的OnGet操作

 public IActionResult OnGetVehicleAssign(int UserDriverID)
    {
        //var param = new SqlParameter("@UserDriverID", UserDriverID);
        //var VehicleAssign = _context.VehicleAssign.FromSql("uspVehicleAssign @UserDriverID", param).ToList();

        //TripNumber = new TripNumber();
        //TripNumber.VehicleType = VehicleAssign.FirstOrDefault().Type;

        //return Page();

        var result = new { test = "test" };

        return new JsonResult(result);
    }

1 个答案:

答案 0 :(得分:0)

您应将所选的UserDriverID传递到服务器端:

data: { UserDriverID: $("#driverselect").val() },