如何将Model和一些表单数据传递给控制器​​?

时间:2013-08-14 19:38:07

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我想使用ActionLink将当前表单中的更多数据传递给整个模型,但它似乎不起作用。

这是我的观点:

@model BitcoinRedeemPage.Controllers.BitcoinTransactionViewModel


<form action="/DepositDetails/Send" method="post">
    <input id="walletAddress" type="text" name="walletAddress" />

    @Html.ActionLink("Send", "DepositDetails", "Send", new { /* Here i want to send the current @Model and the walletAddress form field value */ } , null)
</form>

应该接收此数据的Controller函数头如下所示:

public ActionResult Send(string walletAddress, BitcoinTransactionViewModel transaction)

请帮助:)

1 个答案:

答案 0 :(得分:3)

你的代码有很多问题,我不知道从哪里开始。

  1. 您不能使用ActionLink将模型发布回Controller。您应该使用表单中的提交按钮将其提交给服务器(Controller)。
  2. 使用Html Helpers代替HTML标记。
  3. 您的ViewModel应位于ViewModels文件夹和命名空间下,而不是在Controllers。
  4. 并且,如果您想要与模型一起提交其他数据, 您应该将它们作为属性添加到View Model。
  5. 以下是您的View应该是这样的:

    @model BitcoinRedeemPage.ViewModels.BitcoinTransactionViewModel
    
    @using(Html.BeginForm("Send", "DepositDetails"))
    {
        @Html.TextBoxFor(model => model.WallterAddress)
    
        <input type="submit" name="submit" value="Submit" />
    }
    

    而且,在您的控制器中,您将拥有:

    [HttpPost]
    public ActionResult Send(BitcoinTransactionViewModel transaction)
    {
    }