当前位置: 首页 > 面试题库 >

无法使用Ajax将数据传递到剃须刀页面

羊越
2023-03-14
问题内容

我正在尝试将一些数据发送到razor页面方法,但是问题在于方法中它总是以as的形式出现0

这是代码:

剃刀页面:

public IActionResult OnGetProducts(int page)
{
    var products = _productRepository.GetProducts();

    decimal pagesInDecimal = (products.Count() / 18);
    var totalPages = pagesInDecimal % 1 == 0 ? pagesInDecimal : pagesInDecimal + 1;

    products = products.Skip((page - 1) * 20).Take(20);

    return new JsonResult(new {
        totalPages = totalPages,
        products = products
    });
}

阿贾克斯:

getProducts(1);            
function getProducts(page) {
    $.ajax({
        type: 'GET',
        url: "/Products",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: {
            page: page,
            handler: 'Products'
        },
        beforeSend: function (xhr) {
            xhr.setRequestHeader("XSRF-TOKEN",
                        $('input:hidden[name="__RequestVerificationToken"]').val());
        },
        success: function (datas) {
            console.log(datas);
        }
    });
}

问题答案:

page在使用ASP.NET Core 2.0 Razor Pages时,实际上是保留名称。您遇到的问题实际上非常简单,但非常细微:

当它看到查询字符串参数时,ASP.NET Core 2.0 Razor Pages框架会将其解释为当前Razor Page的名称-
您可以看到,如果将page参数更改为type string;它实际上将包含当前页面的名称。在您的情况下,由于类型是an
int,因此模型绑定过程无法将字符串(名称)绑定到数字,因此请将其设置为0

解决此问题的一种方法是使用其他名称。例如:

public IActionResult OnGetProducts(int pageNumber)

-和-

data: {
    pageNumber: page,
    handler: 'Products'
}

有一个讨论的公平位 围绕
在这个问题上Github上,但它不是具体到你的情况。我建议您搜索或提出一个新问题,专门讨论在Razor
Page中使用查询字符串参数。

无关紧要的是,您无需Content-Type$.ajax请求中设置标头-发送内容时会使用标头,而您不需要。



 类似资料:
  • 问题内容: 我想知道是否有使用MVC6中的jQuery AJAX提交表单的特定方法,仍然使用ASP.NET MVC的自动绑定功能。我相信在其他版本的MVC中,您可以使用jquery.unobtrusive-ajax并简单地使用 由于MVC6进行了一些更改,所以我想知道新的推荐方法是什么,除了在提交表单时向服务器进行常规AJAX发布之外。这意味着我将手动获取每个输入字段的值,将它们转换为JSON并将

  • 问题内容: 我正在尝试将数据发送到我的PHP脚本来处理一些东西并生成一些东西。 在我的PHP文件中,我尝试检索专辑名称。虽然当我验证它时,我创建了一个警报以显示什么都没收到,但是我尝试通过 虽然会说undefined:/ 问题答案: 您正在发送POST AJAX请求,因此请在您的服务器上使用来获取值。我也建议您这样编写请求,以确保正确的编码: 或简称为: 如果您想使用GET请求: 或简称为: 现在

  • 问题内容: 我想将变量传递到特定页面。我找到了一个简单的示例,解释了如何在Wordpress中使用Ajax。 JavaScript: 插入的一段PHP 不幸的是我不能传递变量。我检查了代码,并得到以下错误: 您是否知道另一种获得相同结果的方法? 问题答案: 您距离很近,但缺少一些小东西…… 我在评论中的意思是,您需要在两种情况下都使用这种方式: 更改 为 : 新增 : 对于您的jQuery脚本文件

  • 我正在使用ASP.NET core MVC为我的应用程序创建动态图表。我正在使用CanvasJS绘制图表。 我想根据屏幕上选择的参数绘制图表数据。因此,我有一个dropdownlist和一个datatable来定义从数据库检索哪些数据。 问题是在我单击按钮后没有加载我的图表。然而,当我调试应用程序时,根据控制台日志,js函数正在工作,但它不更新图表中的。 我的看法是 我的控制器就像 例如,当我从屏

  • 我正在尝试使用jquery将值从一个JSP页面传递到另一个页面。在下面的代码中,我想将变量“Process Id”传递到另一个页面。加载下面的JSP页面后,该值应该传递到另一个页面。 我收到错误:“procId未定义”

  • 我在建一个拉威尔的网站。我希望提交的表单数据运行查询,并将结果插入表格式。我正在使用oracle DB,并已将其连接到Laravel。另外,我已经创建了表单,查询结果正确。我不能做的是将结果成功地传递到表中。 我的文件如下: > Routes.php(或web.php较新的laravel版本): 搜索。刀身php(带有post方法的表单) 我的控制器(NewController.php)运行查询。