将多行字符串传递给 Controller 以进行加密并传回 Razor 视图

Passing a multi-line string to Controller to be encrypted and passed back to a Razor view

我的应用程序应该是一个非常简单的 ASP.Net MVC 接口,它从用户那里获取多行字符串,并且 return 它在提交时加密。 问题是我在我的视图中使用了 textArea HTML 助手,每当我提交时,输入的值都不会传递给控制器​​。我在控制器中的 Action 开头放置了一个断点,提交后所有值都显示为 null!

这是查看代码

<form action="Token" method="post" id="tkn">
        Header<br />
        <textarea id="txtHeader" rows="2" cols="20" form="tkn">Header</textarea><br />
        Payload<br />
        <textarea id="txtPayload" rows="2" cols="20" form="tkn">Load</textarea><br />
        Signature<br />
        <textarea id="txtSignature" rows="2" cols="20" form="tkn">Signature</textarea><br />
        Token<br />
        <textarea id="txtToken" rows="2" cols="20" form="tkn">The Rest</textarea><br />

        <button type="submit" value="Submit">Submit</button>
    </form>

这是控制器..

  [HttpPost]
    public ActionResult Token(string txtHeader, string txtPayload, string txtSignature, string txtToken)
    {
        txtHeader = txtHeader + " ";
        txtPayload = txtPayload + " ";
        txtSignature = txtSignature + " ";
        txtToken = txtToken + " ";

        return Content(txtHeader + "  " + txtPayload + "  " + txtSignature + "  " + txtToken + "  " );
    }

我应该怎么做才能成功地将值从视图传递到控制器? (我没有这方面的模型,因为它不会被存储或从数据容器中获取,只是直接提交并获取价值)

MVC 绑定适用于 name html 属性,而不是 id

试试这个

<form action="Token" method="post" id="tkn">
    Header<br />
    <textarea id="txtHeader" name="txtHeader" rows="2" cols="20" form="tkn">Header</textarea><br />
    Payload<br />
    <textarea id="txtPayload" name="txtPayload" rows="2" cols="20" form="tkn">Load</textarea><br />
    Signature<br />
    <textarea id="txtSignature" name="txtSignature" rows="2" cols="20" form="tkn">Signature</textarea><br />
    Token<br />
    <textarea id="txtToken" name="txtToken" rows="2" cols="20" form="tkn">The Rest</textarea><br />

    <button type="submit" value="Submit">Submit</button>
</form>