Asp.net-Mvc

將 Textarea 發佈到控制器(目前正在傳遞 null) - MVC

  • March 26, 2018

我正在創建一個網站,使用者將在其中填寫文本區域(以回答問題),然後按下一步。當他們按下下一步時,文本區域將被送出給控制器並檢索下一個問題(我還將將答案儲存在 cookie 中)。不幸的是,當我在調試中執行程式碼時,我意識到 textarea 沒有被送出 b/c 參數為空。我試圖弄清楚,我環顧四周,似乎做得很好。希望這是一個簡單的修復。非常感謝您的寶貴時間!

控制器:

// 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);
}

看法:

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

您的 textarea 需要一個名稱才能發布。

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

還要從表單中刪除 enctype 屬性。

文本區域不發布字元串,它們發布字元串數組

你的控制器應該有這個簽名:

public ActionResult q(string[] textAnswer)

引用自:https://stackoverflow.com/questions/16701062