无法使用ajax将数据传递到razor页面

2023-12-03

我正在尝试将一些数据发送到剃刀页面方法,但问题是在方法中它始终需要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
    });
}

Ajax:

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要输入的参数string;它实际上包含当前页面的名称。在你的情况下,因为类型是int,模型绑定过程无法将字符串(名称)绑定到数字,因此将其设置为0.

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

public IActionResult OnGetProducts(int pageNumber)

-and-

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

有相当多的讨论around这个问题关于Github,但这并不特定于您的场景。我建议您搜索或提出一个新问题,专门讨论在 Razor 页面中使用查询字符串参数。

作为不相关的旁注,您不需要设置Content-Type标头在你的$.ajax请求 - 当您发送内容而不是发送内容时使用此请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用ajax将数据传递到razor页面 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • gitlab:调用 gitlab-shell

    我一直在浏览代码gitlab shell 我无法理解它是如何被调用的 如果我对我的服务器 安装了 gitlab shell 进行了拉取 那么 gitlab shell 如何知道它 bin gitlab shell有这一行作为评论 GitLa
  • 事件源的性能

    我目前正在开发一个大型项目 需要实现服务器发送的事件 我决定使用事件源传输 并从简单的聊天开始 目前客户端仅监听新的聊天消息事件 但项目将来会有更多事件 首先 我真的很关心服务器端脚本及其循环 其次 我不确定使用mySQL数据库作为存储 在
  • 如何提取 MongoError: E11000 找到重复键的错误消息?

    如何提取错误消息MongoError E11000发现重复的钥匙 我只想要错误本身消息而不是整个对象 我将用一个例子来解释这一点 在mongo shell db test insertOne id 1 insert a document t
  • 在过去 365 天窗口中执行运行总计的有效方法

    这就是我的数据框的样子 库 数据 表 df lt fread Name EventType Date SalesAmount RunningTotal Runningtotal prior365Days John Email 1 1 201
  • 仅第一次记录显示,除非强制处置

    我正在使用 vs 2017 写一个netcoreapp2 0库 并使用 UnitTest 项目对其进行测试 XUnit 和 NUnit 给出相同的结果 我注意到除非我强行处置我的Serilog记录器 只有第一行会出现在Seq 这是我的两堂课
  • AWS 负载均衡器后面使用 Traefik 进行 HTTPS 重定向

    我正在尝试将所有传入的 Traefik 从 http 重定向到 https 以便从具有自定义端口的 docker 容器提供服务的 Web 应用程序 如果我构建这个 docker compose 文件 并扩展应用程序 一切都会按预期工作 我能
  • Ember Simple Auth 自定义验证器

    我一直在尝试创建一个session currentUser财产与id email and points特性 我正在参考使用 Ember 简单身份验证 Ember CLI 的自定义身份验证器 and 如何在会话中存储用户 但我就是不明白这些部
  • 使用 std::ranges::min 投影在 std::map 上

    是否可以在 std map 上投影 我尝试将 std ranges min 与投影一起使用 但它似乎会抛出错误 我无法解释为什么它不喜欢东西 include
  • 可以在自定义进度条progressDrawable中做圆角吗?

    I have a progress bar that is supposed to look like the attached image And I ve made it a long way I m very close the on
  • jMockit:如何期望构造函数调用模拟对象?

    我正在对执行一些序列化操作的方法进行单元测试 我打算模拟序列化逻辑 代码如下 ObjectInputStream ois new ObjectInputStream new BufferedInputStream new FileInput
  • 移植到 VS2015 / .NET 4.6 后,C++/CLI DLL 在加载时崩溃

    老实说 这可能是一个骗局VS2015 迁移的项目可以编译 但无法运行 调试断言失败 但这没有答案 我有更多细节 最近将我们的代码库从针对 v4 0 的 VS2010 移植到针对 v4 6 的 VS2015 我们有一个托管 C DLL 来提供
  • 更改模块目录后的 Python pickle

    我最近更改了程序的目录布局 之前 我将所有模块都放在 main 文件夹中 现在 我已将它们移动到以程序命名的目录中 并放置了一个 init py在那里制作一个包裹 现在 我的主目录中有一个 py 文件 用于启动我的程序 这更加简洁 不管怎样
  • Log4j2 不同级别的不同appender

    我有一个小问题 找不到解决方案 我想为级别信息而不是级别警告设置图案布局 如果我的登录级别为INFO 则一切正常 但如果日志级别为INFOWARN它被写入控制台两次 作为级别信息和级别警告 简而言之 特定级别的所有日志都会写出该级别及其下级
  • yii2 当超链接不在pjax中时如何使用pjax

    在 yii2 中使用 pjax 就像 h1 Current time h1 但如果超链接不在 就像
  • 如何处理 SharePoint 异常?

    我是 SharePoint 新手 所以我想我需要如何处理异常 当我编写自定义代码时 我是否必须检查它们 或者如果抛出它们 它们会自动记录并且不会破坏应用程序 如果没有 那么我如何记录它们 谢谢你 编辑 我应该如何记录这些异常 使用它写入日志
  • C++ 唯一静态 ID 和类名以及基类

    正在上课TaskBase 它的每个派生类必须有名称和唯一的id The TaskBase如下所示 class TaskBase public static const int id return an unique id for each
  • 我试图在函数触发时获取目标元素的 id,但是 `this` 关键字返回 `undefined`

    我试图在函数触发时捕获目标元素的 id 但是this关键字返回undefined HTML 文件 我无法添加任何参数onclick功能 我有很多 a 在页面中添加标签并想要识别女巫 a 标签被点击 a href some links Get
  • NSURL 在某些情况下返回 nil

    我正在创建一个NSURL作为请求发送至PHP rest API我已经设置好了 下面是我的代码 NSMutableString url NSMutableString stringWithFormat http www private com
  • 使用 Symfony 中的 Doctrine 更新多个列

    我必须更新 Symfony 中的多个列 但我找不到解决方案 所以 我想这样做 q Doctrine Query create gt update WebusersTable q gt set q login name John gt whe
  • 无法使用ajax将数据传递到razor页面

    我正在尝试将一些数据发送到剃刀页面方法 但问题是在方法中它始终需要0 代码如下 剃刀页面 public IActionResult OnGetProducts int page var products productRepository