贝宝按钮管理器不接受小数金额
Paypal button manager doesn't accept decimal amount
我有这个部分,它就像一个目录,显示用户可以购买的项目:
@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>
}
在我的模型中,变量 Preco
是 decimal,但是 PayPal.ButtonManager.AddToCartButton.Create
方法的 amount
参数必须是 string,将此变量 Preco
转换为字符串的最佳方法是什么?
我尝试使用这行代码进行转换:
string price = item.Preco.ToString("0.00");
但是不行,显示这个异常:
PayPal.ButtonManager.ButtonManagerException: Invalid Argument - Amount is not valid
通过添加以下内容解决了问题:
string price = item.Preco.ToString().Replace(",", ".");
我认为您获得了值 2,00
,因为您 运行 代码所在的计算机正在使用葡萄牙文化或使用 ,
作为小数点分隔符的任何文化。在将小数值转换为字符串
时,可以通过使用en-US
文化来获取以.
作为小数点分隔符的字符串值
string price = item.Preco.ToString("0.00", new System.Globalization.CultureInfo("en-US"));
我有这个部分,它就像一个目录,显示用户可以购买的项目:
@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>
}
在我的模型中,变量 Preco
是 decimal,但是 PayPal.ButtonManager.AddToCartButton.Create
方法的 amount
参数必须是 string,将此变量 Preco
转换为字符串的最佳方法是什么?
我尝试使用这行代码进行转换:
string price = item.Preco.ToString("0.00");
但是不行,显示这个异常:
PayPal.ButtonManager.ButtonManagerException: Invalid Argument - Amount is not valid
通过添加以下内容解决了问题:
string price = item.Preco.ToString().Replace(",", ".");
我认为您获得了值 2,00
,因为您 运行 代码所在的计算机正在使用葡萄牙文化或使用 ,
作为小数点分隔符的任何文化。在将小数值转换为字符串
en-US
文化来获取以.
作为小数点分隔符的字符串值
string price = item.Preco.ToString("0.00", new System.Globalization.CultureInfo("en-US"));