Asp.net-Mvc
將 Textarea 發佈到控制器(目前正在傳遞 null) - MVC
我正在創建一個網站,使用者將在其中填寫文本區域(以回答問題),然後按下一步。當他們按下下一步時,文本區域將被送出給控制器並檢索下一個問題(我還將將答案儲存在 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)