c# - Paypal 按钮管理器不接受小数金额

标签 c# asp.net-mvc razor paypal paypal-sandbox

在我看来,这部分就像一个目录,显示了用户可以购买的商品:

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.genero.Nome)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Nome)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NomeArtista)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Preco)
        </td>
        <td>
            @Html.ActionLink("Play", "", new { path = item.path }) |
            @if (item.Preco > 0)
            {
                string price = item.Preco.ToString("0.00");
                var payPalBtn = PayPal.ButtonManager.AddToCartButton.Create(
                       business: "pedrro2-facilitator@hotmail.com",
                       itemName: item.Nome,
                       amount: price
                       );


              HtmlString payPalBtnHtml = new HtmlString(payPalBtn.WebSiteCode);

             @Html.ActionLink("| Adicionar ao carrinho", "AddToCart", "ShoppingCart", new { id = item.MusicaId },"")
            }else{
            <button type="button" class="addmusic" data-id="@item.MusicaId">Add</button>
            }

        </td>
    </tr>
}

在我的模型中,变量 Precodecimal,但是PayPal.ButtonManager.AddToCartButton.Create<的amount 参数 方法必须是 string,将此变量 Preco 转换为字符串的最佳方法是什么?

我尝试使用这行代码进行转换:

string price = item.Preco.ToString("0.00");

但是不行,显示这个异常:

PayPal.ButtonManager.ButtonManagerException: Invalid Argument - Amount is not valid

最佳答案

我认为您获得了值 2,00,因为您运行代码的计算机使用的是葡萄牙文化或使用 , 作为小数点分隔符的任何文化。将小数值转换为字符串时,可以使用en-US culture 获取以. 为小数分隔符的字符串值

string price = item.Preco.ToString("0.00", new System.Globalization.CultureInfo("en-US"));

关于c# - Paypal 按钮管理器不接受小数金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30278241/

相关文章:

c# - 如何将对象从组合框选择的项目转换为字符串

c# - ORA-01036 : illegal variable name/number

c# - HTML编码解码c#MVC4

asp.net - Controller.执行渲染为没有内容类型的文本文件

asp.net-mvc - WebGrid 未显示

c# - 如何将 MvcHtmlString 呈现为 HTML

C# Topshelf超时异常

c# - 如何将多个命名空间添加到 OData 服务中的 IEdmModel

html - Pre 标签显示数据库中的 html 内容

asp.net-mvc - {0} 的长度必须至少为 {2} 个字符