将多行字符串传递给控制器进行加密并传回到剃刀视图
问题描述:
我的应用程序应该是一个非常简单的ASP.Net MVC接口,它可以从用户处获取多行字符串,并在提交时将其加密返回。 问题是,我在我的视图中使用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>
所有文字区域,你试过设置'name'属性? –
我没有..我现在尝试 – j0zeft
我建议你创建一个viewmodel并用'TextAreaFor'绑定字符串属性,因为这是MVC,你可以使用HTML helper来代替标准的HTML表单控件。 –