2017-10-04 1 views
1

Meine Anwendung sollte eine sehr einfache ASP.Net MVC-Schnittstelle sein, die eine mehrzeilige Zeichenfolge vom Benutzer erhält und sie beim Senden zurückgibt . Das Problem ist, dass ich einen TextArea-HTML-Helfer in meiner Ansicht verwende, wenn ich übergebe, werden die eingegebenen Werte nicht an den Controller übergeben. Ich habe gleich zu Beginn der Action einen Breakpoint in meinem Controller platziert, und alle Werte zeigen mir nach dem Einreichen null!Übergeben einer mehrzeiligen Zeichenfolge an den Controller, der verschlüsselt und an eine Razor-Ansicht zurückgegeben wird

Dies ist der Code anzeigen

<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> 

und dies ist der Controller ..

[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 + " "); 
    } 

Was soll ich tun, um Übergabe von Werten aus der Sicht auf den Controller erfolgreich zu sein? (Ich habe nicht ein Modell dafür, wie es geht nicht von einem Datencontainer gespeichert oder gebracht wird, nur geradeaus einreichen und bekommt Wert)

+1

Haben Sie 'name' Eigenschaft für alle Textfelder versucht Einstellung? –

+0

Ich habe nicht .. Ich werde das jetzt versuchen – j0zeft

+1

Ich schlage vor, Sie erstellen ein Viewmodel & binden Sie die String-Eigenschaften mit 'TextAreaFor', da dies MVC ist, können Sie HTML-Helfer verwenden stattdessen Standard-HTML-Formularsteuerelemente. –

Antwort

1

MVC Arbeiten am name HTML-Attribute zu binden, nicht die id

Versuchen Sie, diese

<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> 
Verwandte Themen