2013-05-22 12 views
7

Tworzę stronę internetową, na której użytkownik wypełni pole tekstowe (w odpowiedzi na pytanie), a następnie naciśnie przycisk next. Kiedy naciśniemy przycisk next, tekst zostanie przesłany do kontrolera, a następne pytanie zostanie pobrane (będę również przechowywać odpowiedź w pliku cookie). Niestety, po uruchomieniu kodu w debugowaniu zdałem sobie sprawę, że tekst nie jest wysyłany b/c parametr ma wartość null. Próbowałem to rozgryźć i rozejrzałem się i wydaje mi się, że robię to właściwie. Mam nadzieję, że to łatwa naprawa. Dziękuję bardzo za poświęcony czas!Umieszczanie Textarea na kontrolerze (obecnie jest przekazywana wartość null) - MVC

Kontroler:

// POST: /Question/1 
[HttpPost] 
public ActionResult q(string textAnswer) { 
    if (textAnswer != null) 
     ViewBag.current++; 

    Question q = db.Questions.Find(ViewBag.current); 
    if (q == null) { 
     return RedirectToAction("submit"); 
    } 

    return View(q); 
} 

Widok:

<form class="form-horizontal" id="myForm" method="post" enctype="text/plain" name="input"> 

    <p> 
     <h3>Question <span id="integer">@ViewBag.current</span></h3> 
     @Html.DisplayFor(model => model.Ques) 
    </p> 

    <div class="control-group"> 
     <label class="control-label">Answer</label> 
     <div class="controls"> 
      <textarea rows="20" style="width:600px" id="textAnswer"></textarea> 
     </div> 
    </div> 

    <div class="control-group"> 
     <div class="controls" > 
      <button onclick="history.back()" type="button" class="btn">Back</button> 
      <input type="submit" class="btn" value="Next" /> 
     </div> 
    </div> 

</form> 
+1

Ramunas

+0

spróbuj dodać normalny element input z i sprawdź, czy to zostanie opublikowane. –

Odpowiedz

9

Twój textarea musi mieć nazwę, aby być wysłana.

<textarea rows="20" style="width:600px" id="textAnswer" name="textAnswer"></textarea> 

Usuń również atrybut enctype ze swojego formularza.

+0

Zmodyfikowałem swój kod i nadal z jakiegoś powodu przechodzi Null ... Próbowałem również zmienić nazwę formularza, a tekst nadal nie jest przekazywany. Wielkie dzięki za szybką reakcję! – Dehli

+0

Spróbuj usunąć atrybut 'enctype'. Sugeruję to tylko dlatego, że nigdy nie określiłem tego atrybutu, chyba że próbuję opublikować dane pliku. –

+0

Dziękuję bardzo! Trzeba to zrobić. Miłego dnia! – Dehli

1

Obszary tekstowe nie publikują ciągów, publikują tablic ciągów.
Kontroler powinien mieć ten podpis:

public ActionResult q(string[] textAnswer) 
Powiązane problemy