我的代码有问题。到了我需要在 ConvertCurrencies 视图中显示“结果”的地步。我该怎么做 ?服务器响应没有问题,'result' , 'currencyCodes' 等包含来自服务器的结果。部分代码如下:
private const string nbpApiUrl = RatesExchangeServices.exchangeratesUrl;
//Akcja wyświetlająca widok
public IActionResult ConvertCurrencies()
{
//Pobiera listę kodów walut z metody
var currencyCodes = GetCurrencyCodes();
//Stworzenie SelectList z kodami walut
var currencyList = new SelectList(currencyCodes);
//Przekazanie SelectList do widoku
ViewBag.currencyList = currencyList;
return View();
}
//Akcja przeliczająca waluty
public async Task<ActionResult> Convertion(string fromCurrency, string toCurrency, decimal amount)
{
//Pobieramy kursy walut
var exchangeRate1 = await GetExchangeRateFrom(fromCurrency);
var exchangeRate2 = await GetExchangeRateTo(toCurrency);
//Przeliczamy kwotę
var result = amount * exchangeRate1[fromCurrency] / exchangeRate2[toCurrency];
//Zwracamy wynik w widoku
ViewBag.result = result;
return View();
}
我的观点 ConvertCurrencies.cshtml 我想 id=result 应该告诉我结果,但事实并非如此。我应该在脚本中写什么(第一个大括号我有“结果”,如你所见),因为我想结果写错了。
@{
ViewBag.Title = "Currency Converter";
}
<h2>Twój lokalny kantor walut</h2>
@using (Html.BeginForm("ConvertCurrencies", "currency", FormMethod.Post))
{
<div>
@Html.Label("Wymień z:")
@Html.DropDownList("fromCurrency", (SelectList)ViewBag.currencyList, "Wybierz walutę")
</div>
<div>
@Html.Label("Wymień do:")
@Html.DropDownList("toCurrency", (SelectList)ViewBag.currencyList, "Wybierz walutę")
</div>
<div>
@Html.Label("Ilość:")
@Html.TextBox("amount")
</div>
<div>
@Html.Label("Wynik konwersji:")
<span id="result"></span>
</div>
<div>
<input type="submit" value="Wymień" />
</div>
}
@section Scripts {
<script>
$(function () {
$("result").submit(function (e) {
e.preventDefault();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$("#result").html(result);
}
});
});
});
</script>
}
我尝试了很多变体,但没有任何效果。