Обновите @Model, используя jQuery и другой контроллер / функцию - PullRequest
0 голосов
/ 09 ноября 2019

Я попытаюсь объяснить это просто из-за того, что это немного сложно: я пытаюсь создать кошелек Blockchain, я успешно загрузил свое представление с помощью AccountController. Там у меня есть баланс кошелька, и все прекрасно работает.

Но иногда я хочу перевести деньги (= изменить баланс кошелька). Мой взгляд считывает баланс с помощью @Model, возвращенного из AccountController (класс Account).

Моя проблема заключается в обновлении@model. Из того, что я сделал - пока ничего не изменилось.

После публикации адреса получателя и денег для перевода обратно на сервер, прямо в другой контроллер с помощью jQuery (нажатием кнопки), мне нужно вернуть @Modelк представлению с обновленным балансом, который будет вызван прямо в элементы HTML, которые уже читают его. На сервере у меня уже есть экземпляр учетной записи с такими же данными.

Вот мой код:

HTML:

  <label id="ETH-Value">@Model.AccountBalance ETH</label>
  <table>
      .....
      <tr >
         <td style="">
         <input name="RecipientAmmountInput" type="number"  required="required" id="RecipientAmmountInput" placeholder="Enter Ammount" min="0" max=@Model.AccountBalance>
         </td>
         <td ">
            <a style="color:blue;" href="javascript:void(0);"  onclick="SendMoneyTransaction()" id="nextButton"><strong>Next></strong></a>
         </td>
       </tr>
  </table>

jQuery:

  function SendMoneyTransaction()
    { 
        var recipientAddress = $('#RecipientAddressInput').val();
        var tranferValueETH = $('#RecipientAmmountInput').val();
        .....
        var url = "/SendDepositETH/SendMoney";
        $.post(url, { AddressTo: recipientAddress, Amount: tranferValueETH }, function (data) 
        {
          //The post is working
            ...
         }) 

C # (сервер):

 ...
 public class SendDepositETHController : Controller
 {
 [HttpPost]
    public IActionResult SendMoney(String AddressTo, String Amount)
    {
        double amountToSend = Convert.ToDouble(Amount);
        Account transferFrom = AccountController.myAccount;
        transferFrom.AccountBalance = amountToSend;  //for example
        return View(transferFrom);
    }

  }
  ....

1 Ответ

0 голосов
/ 11 ноября 2019

В контроллере вы можете: вернуть TransferFrom;и измените IActionResult на Account. На виду,

 $.post(url, { AddressTo: recipientAddress, Amount: tranferValueETH }, function (data) 
        {
          //The post is working
          // Something like this
            $("#ETH-Value").val(data.AccountBalance);
         }) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...