我在 ASP.NET 中有以下代碼,但是當運行代碼時,它在標簽 lblassest.Text 中回傳 0 值。誰能告訴我問題出在哪里?
C# 代碼:
if (reader.Read())
{
decimal price;
decimal.TryParse(lblcurrentbtc.Text, out price);
decimal pr_charges = reader["WallBalan"] ==
DBNull.Value ? 0 : Convert.ToDecimal(reader["WallBalan"]);
lblamount.Text = pr_charges.ToString();
lblassest.Text = ((Convert.ToDecimal(reader["WallBalan"]) * price)).ToString();
reader.Close();
}
ASP(前端):
<asp:Label class="text-dark float-right font-weight-medium" id="lblcurrentbtc" runat="server"></asp:Label>
<asp:Label class="text-dark mb-1 font-weight-medium" runat="server" ID="lblassest"></asp:Label>
Javascript :
var baseUrl = "https://api.coinranking.com/v2/coins"
var proxyUrl = "https://cors-anywhere.herokuapp.com/"
var apiKey = "coinranking"
fetch(`${proxyUrl}${baseUrl}`, {
method: "GET",
headers: {
'Content-Type': 'application/json',
'x-access-token': `${apiKey}`,
'Access-Control-Allow-Origin': '*'
}
}).then((response) => {
if (response.ok) {
response.json().then((json) => {
console.log(json.data.coins)
let coinsData = json.data.coins
if (coinsData.lenght > 0) {
var cryptoCoins = "";
}
coinsData.forEach((coin) => {
cryptoCoins = "<tr>"
cryptoCoins = `<td> ${coin.uuid} </td>`;
cryptoCoins = `<td> ${coin.btcPrice} </td>`;
cryptoCoins = `<td> ${coin.rank} </td>`;
cryptoCoins = `<td> ${coin.tier} </td>`;
cryptoCoins = `<td> ${coin.name} </td>`;
cryptoCoins = `<td> ${coin.price} </td>`;
cryptoCoins = `<td> ${coin.symbol} </td>`; "<tr>";
})
document.getElementById("data").innerHTML = cryptoCoins
document.getElementById('lblcurrentbtc').innerHTML = "";
var myTab = document.getElementById('table1');
var objCells = myTab.rows.item(1).cells;
lblcurrentbtc.innerHTML = lblcurrentbtc.innerHTML ' '
objCells.item(5).innerHTML;
})
}
}).catch((error) => {
console.log(error)
})
請注意, lblcurrentbtc.Text 的值類似于 54897.56062971018 。
謝謝你的幫助
uj5u.com熱心網友回復:
您使用decimal.TryParse()正確。如果 price 的值是0在呼叫它之后,那么您的內容llblcurrentbtc.Text是0,不是數字或空/空字串的內容。
也有可能TryParse永遠無法到達這條線。
嘗試在 if 陳述句中設定斷點以驗證字串值 ( lblcurrentbtc.Text) 是否符合您的預期。lblcurrentbtc.Text在此代碼運行時,您可能為 null 或空字串 - 分配值的代碼可能稍后發生。
uj5u.com熱心網友回復:
如果我寫這個代碼:
var lblcurrentbtc = new Label();
var lblamount = new Label();
var lblassest = new Label();
var reader = new Dictionary<string, object>();
reader["WallBalan"] = 2m;
lblcurrentbtc.Text = 54897.56062971018m.ToString();
然后我逐字運行你的代碼:
decimal price;
decimal.TryParse(lblcurrentbtc.Text, out price);
decimal pr_charges = reader["WallBalan"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["WallBalan"]);
lblamount.Text = pr_charges.ToString();
lblassest.Text = ((Convert.ToDecimal(reader["WallBalan"]) * price)).ToString();
lblamount.Text&的值分別lblassest.Text是2& 109795.12125942036。
您的代碼運行良好。您的問題是lblcurrentbtc.Text不包含您認為的價值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369608.html
上一篇:asp.netRazorPages-根據另一個選擇串列的選擇更新選擇串列
下一篇:在背景關系選單中看不到屬性
