Я не могу понять, как отправить весь ViewModel на контроллер на функцию "Проверить и сохранить".
Вот мой контроллер:
[HttpPost]
public ActionResult Send(BitcoinTransactionViewModel transaction)
{
}
Вот форма в представлении:
<li class="check">
<h3>Transaction Id</h3>
<p>@Html.DisplayFor(m => m.Transaction.TransactionId)</p>
</li>
<li class="money">
<h3>Deposited Amount</h3>
<p>@Model.Transaction.Amount.ToString() BTC</p>
</li>
<li class="time">
<h3>Time</h3>
<p>@Model.Transaction.Time.ToString()</p>
</li>
@using (Html.BeginForm("Send", "DepositDetails", FormMethod.Post, new { transaction = Model }))
{
@Html.HiddenFor(m => m.Token);
@Html.HiddenFor(m => m.Transaction.TransactionId);
@Html.TextBoxFor(m => m.WalletAddress, new { placeholder = "Wallet Address", maxlength = "34" })
<input type="submit" value="Send" />
@Html.ValidationMessage("walletAddress", new { @class = "validation" })
}
Когда я нажимаю кнопку "Отправить", счетчик содержит правильное значение поля walletAddress, но transaction.Transaction.Time
, transaction.Transaction.Location
, transaction.Transaction.TransactionId
пусты.
Есть ли способ передать всю модель обратно контроллеру?
Edit:
Когда я даже не получаю walletAddress
в контроллере. Все становится нулевым!
Когда я удаляю только эту строку: @Html.HiddenFor(m => m.Transaction.TransactionId);
он работает, и я получаю свойство Token на контроллере, но когда я его добавляю, все свойства объекта transaction
на контроллере равны NULL.
Вот биткойнTransactionViewModel:
public class BitcoinTransactionViewModel
{
public string Token { get; set; }
public string WalletAddress { get; set; }
public BitcoinTransaction Transaction { get; set; }
}
public class BitcoinTransaction
{
public int Id { get; set; }
public BitcoinTransactionStatusTypes Status { get; set; }
public int TransactionId { get; set; }
public decimal Amount { get; set; }
public DateTime Time { get; set; }
public string Location { get; set; }
}
Любые идеи?
РЕДАКТИРОВАТЬ: Я понял это, в отмеченном ниже ответе...