JQuery + Asp.Net MVC,传递浮点数

2024-03-29

我最近正在使用 MVC,在尝试使用 ajax 向控制器发送请求时遇到了一个奇怪的问题。我正在使用 MVC 直接附带的 JQuery(版本 1.3.2),我正在尝试发送这样的 ajax 请求:

$.post("Home/OpenTrade", { price: 1.5 }, function() { }, "json");

我也尝试过parseFloat("1.5")代替1.5.
当我尝试使用控制器接收该值时

[AcceptVerbs( HttpVerbs.Post)]
public void OpenTrade(float? price)

我的价格始终为空。如果我省略?控制器根本没有被调用(这并不奇怪),我尝试过使用decimaldouble类型。此外,当我发送整数数据时,此函数起作用(如果我发送1该控制器被调用,并且float? price已正确填写)。我错过了什么,还是一个错误?

广告。我可以以字符串形式接收价格,然后手动解析它,但我不喜欢这个解决方案,因为它不优雅,而且违背了使用 MVC 等框架为我完成此操作的全部目的。

编辑和回答:根据乔尔的建议,我创建了一个模型绑定器,我将发布它,也许有人会使用它:


class DoubleModelBinder : IModelBinder
{
    #region IModelBinder Members

    public object BindModel(ControllerContext controllerContext, ModelBindingContext    bindingContext)
    {
        string numStr = bindingContext.ValueProvider[bindingContext.ModelName].AttemptedValue;
        double res;

        if (!double.TryParse(numStr, System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out res))
        {
            if (bindingContext.ModelType == typeof(double?))
                return null;
            throw new ArgumentException();
        }

        if (bindingContext.ModelType == typeof(double?))
            return new Nullable<double>(res);
        else
            return res;
    }

    #endregion
}

可以注册为double和double吗?活页夹,双份?如果值无法解析,它将把 null 传递给控制器​​。

顺便提一句。有什么想法为什么浮点数和双精度数不能开箱即用(对我来说?)?

编辑2和解决方案:好吧,这会很有趣:)。它对我不起作用,因为请求的字符串正在发送1.5432(示例值),这是完全可以的,但是... MVC 试图使用我的区域性设置在内部对其进行解码,该设置期望数字采用格式 1,5432,因此转换已默默失败。
所以,要记住的是:如果您生活在陌生的国家,请仔细检查您的文化背景。


制作一个浮动模型活页夹。它可以从表单集合中提取适当的值,解析它,并将其作为参数返回

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

JQuery + Asp.Net MVC,传递浮点数 的相关文章

随机推荐

  • 禁用下拉菜单中的选项 Unity

    I need to disable 1 or 2 dropdown option from a dropdown menu in Unity The dropdown menu should not be repopulated There
  • R、正确使用粘贴功能

    该循环正确创建了 13 个名为 bond1 bond13 的 df 并为它们分配了 function1 中的值 现在我需要使用 function2 和另外两个 df 创建另外 13 个名为 spread1 spread13 的 DF 其中之
  • 如何使用 PHP 检测访问我们网站的用户的 MAC 地址?

    我知道如何追踪 IP 地址 但我需要追踪查看我的页面的用户的 MAC 地址 如何做到这一点 除非用户与网络服务器位于同一 LAN 上 否则无法执行此操作 MAC 地址位于 TCP IP 下面的以太网层 并且不包含在从用户本地网络路由出去的
  • 为什么 SQL Server 2008 在长事务 INSERT 上阻止 SELECT?

    我们正在尝试建立一个只定期插入新记录的事务表 这个简单的表需要我们随着时间的推移不断向其中添加新记录 该表中的事务量预计会相当高 并且可能会定期批量导入事务 gt 1000 这可能需要几秒钟才能完成 然后 我们根据这些数据执行一组选择语句
  • 你能在 vim 中做交互式宏或录音吗?

    我想定义一个 vim 宏 在特定时间中断用户输入 这可能吗 编辑 原来是我的录音 q 而不是宏 可以在录音中使用输入命令 但麻烦大于其价值 我首先将插入输入转义映射到一个键 map
  • Visual Studio Code:如何同时打开调试窗口和资源管理器窗口?

    我是视觉代码新手 我有一个小问题 您有两个用红线圈出的按钮 第一个按钮打开资源管理器窗口 第二个圆圈按钮打开调试窗口 我想打开这两个窗口 你知道该怎么做吗 从 VSCode 1 13 开始这是不可能的 已跟踪显示多个面板的功能请求here
  • 使用TDD在Java中开发文件遍历代码

    我必须实现一些代码来遍历目录结构并返回找到的文件列表 要求非常简单 给定一个基本目录 查找其中的所有文件 不是目录本身 如果找到目录 请重复步骤 1 我想使用 TDD 开发代码 当我开始编写测试时 我意识到我在嘲笑班级File 这样我就可以
  • PHP 致命错误:内存不足(已分配 80740352)(试图分配 12352 字节)

    当用户在我的网站上上传图像时 我收到此错误 错误消息是 PHP 致命错误 home 内存不足 已分配 80740352 试图分配 12352 字节 如何使用 php ini 修复此问题 这是我当前的上传 php ini 设置 upload
  • 对 .toolbarBackground SwiftUI 使用渐变

    我正在尝试为导航 toolbarBackground 设置自定义渐变 但任何时候我都只使用 LinearGradient 中的第一种颜色运行它 toolbar ToolbarItem placement navigationBarTrail
  • 在 React Native 地图中设置最大和最小缩放级别

    如何在 React Native 地图中设置最小和最大缩放级别
  • 如何从 EditText 中仅获取可见文本

    我有一个用于在 Android 上运行的代码编辑器的 EditText 我正在对内容应用语法突出显示 除了 EditText 滚动到屏幕之外的大字符串之外 它运行良好 每次按键时语法突出显示都会应用于整个 Spannable 有谁知道我如何
  • 核心数据实体唯一约束不起作用

    我正在尝试使用新的实体约束检查器在核心数据中设置约束 以使项目的名称唯一 我读过的所有内容都表明这非常简单 设置约束并处理错误 我没有收到任何错误 并且可以根据需要多次添加相同的条目 该应用程序确实需要 IOS 9 0 Xcode 工具要求
  • 在 VSTS 上调用 Pull Request API 时收到“403 Forbidden”

    对于我调用的其他 API 包括 Analytics 一切似乎都工作正常 但是当我尝试进行任何拉取请求查询时 我得到一个403 Forbidden 这些呼叫是由我的私人 Windows 代理进行的 其 PAT 已获得所有范围的授权 它正在使用
  • 如何四舍五入到最接近的十? [复制]

    这个问题在这里已经有答案了 如何在没有 if 语句的情况下将数字四舍五入到最接近的十 例如 98 到 100 int num 87 double t double d 1 0 num d 87 0 t d 100 System out pr
  • 有没有比加0.5f并截断转换更直接的方法将float转换为int并进行舍入?

    在处理浮点数据的 C 代码中 从 float 到 int 的舍入转换相当频繁 例如 一种用途是生成转换表 考虑一下这段代码 Convert a positive float value and round to the nearest in
  • 使用动态模式从 JSON 加载

    我正在尝试保存 Fabric js 画布并使用重新加载它loadFromJson 但我收到错误 patternSourceCanvas 未定义 我认为我应该将其设为全局 所以我删除了 var 但是 当我用新图案填充其他新形状时 这个新图案将
  • 需要 WPF Toolkit 控件(尤其是 DataGrid)的主题

    我刚刚从Codeplex WPF 主题站点 http wpf codeplex com wikipage title WPF 20Themes 我非常喜欢 WhisterBlue 和 BureauBlue 主题 但都不包含任何包含在WPF工
  • 如何在 C++ 中将 int 连接到 wchar_t* ?

    我必须创建并写入N个文件 每个文件都必须有一个整数结尾来标识它 这是我的一段代码 for int i 0 i
  • Google Map v3 在 Chrome 中使用水平灰线和 Foundation 进行初始化

    似乎与 CSS 相关 因为在简单的 HTML 页面中初始化地图效果很好 我添加了建议的 CSS 来修复已知问题 如下 但似乎无法摆脱这个问题 map before after moz box sizing content box impor
  • JQuery + Asp.Net MVC,传递浮点数

    我最近正在使用 MVC 在尝试使用 ajax 向控制器发送请求时遇到了一个奇怪的问题 我正在使用 MVC 直接附带的 JQuery 版本 1 3 2 我正在尝试发送这样的 ajax 请求 post Home OpenTrade price