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

C#MVC控制器无法从Ajax POST请求获取十进制或双精度值

蔚俊人
2023-03-14
问题内容

我的问题是,当我尝试通过Ajax将双精度或十进制数发送到C#MVC控制器时,该值始终为null。我可以将值作为字符串发送,也可以毫无问题地发送整数。为什么我不能发送带小数的值?当我检查从客户端发送的请求时,正确的值在那里(表单数据为price=84.50)。

错误:

参数字典包含非空类型“ System.Decimal”的参数“ price”的空条目

HTML:

 <input type="number" step="1" class="form-control" name="price" id="price">
 <button type="button" class="btn btn-success">Send</button>

Javascript:

$('.btn-success').click(function () {

    //var price = $('#price').val(); - Did not work
    //var price = Number($('#price').val()); Did not work
    var price = Number($('#price').val()).toFixed(2); // Does not work

    $.ajax({
        url: 'PriceFunction',
        type: 'POST',
        data: {
            price: price,
        }
    }).done(function () {

    }).fail(function () {
        console.log("Error in ajaxfunction!");
    });
});

C#:

    [HttpPost]
    public void PriceFunction(decimal price)
    {
     // I have tried with decimal, double and double?.     
    }

问题答案:

发送十进制值时,需要对数据进行字符串化。

data: JSON.stringify({ Price: 5.0 })

这是因为默认联编程序将十进制视为整数。

您当然可以更改为使用,DecimalModelBinder该链接在以下链接中进行了详细介绍:

ASP.NET MVC3 JSON十进制绑定问题



 类似资料:
  • 本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下 示例 浮动 float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。 大致范围:-3.4×10 38至3.4×10 38 十进制精度:6-9个有效数字 记

  • 问题内容: 如何确定整数位数和Java中类似数字的小数点后位数。 问题答案: 双精度并不总是精确的表示形式。您只能说如果将其转换为字符串,将有多少个小数位。 这仅适用于未转换为指数符号的数字。您可能会认为1.0小数点后一位或无位。

  • 问题内容: 我用双精度(小数)出现了这个问题。 当double = 1.234567时,我使用 所以结果是1.234 但是当我的倍数是10时 ,结果将是10,000, 我希望这是10 他们是否可以说他只在“ usefull”时才显示小数? 我看到了一些有关此的文章,但是那是php或c#,找不到关于android / java的东西(也许我看起来不太好)。 希望你们能帮我这个忙。 编辑,现在我使用类

  • 基于此阵列: 我想在Java中打印双精度值和ascii值。我在互联网上找不到合适的解决方案。我刚刚发现如何将单个字符转换为整数值。但是很多字符呢?主要问题是,我有一个大char[]和一些双精度和int值存储在.对于双精度值,它们存储在4字节大小和整数1或2字节内,所以我必须阅读所有这些并转换为双精度或整数。 谢谢你帮忙

  • 问题内容: 是否可以通过Chrome的控制台找到元素的控制器?我可以通过在“ 元素面板”中 选择 元素 并使用来获得对该组件的引用 有一个属性(看起来像一个构造函数),但是我不确定该怎么做。有什么办法可以从这里找到控制器的名称吗? 问题答案: 如果您只是这样做(如果您安装了Batarang Chrome扩展程序),则应该能够访问所选元素的作用域的功能和属性。这还应包括控制器在示波器上公开的所有功能

  • 我在应用程序中使用BigDecimal 作为我的数字,例如,使用 JPA。我对术语“精度”和“规模”进行了一些研究,但我不明白它们到底是什么。 有人能解释一下BigDecimal值的“精度”和“刻度”的含义吗? 谢谢!