2017-10-04 34 views
1

我的应用程序应该是一个非常简单的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 + " "); 
    } 

我应该为了从视图控制器成功传递值吗? (我没有这个模型,因为它是不会被保存或者从一个数据容器带来的,只是简单的提交和获得价值)

+1

所有文字区域,你试过设置'name'属性? –

+0

我没有..我现在尝试 – j0zeft

+1

我建议你创建一个viewmodel并用'TextAreaFor'绑定字符串属性,因为这是MVC,你可以使用HTML helper来代替标准的HTML表单控件。 –

回答

1

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> 
相关问题