我正在创建一个网站,用户将填写文本区域(回答问题),然后按下一步。当他们按下时,textarea将被提交给控制器,下一个问题将被检索(我也将答案存储在cookie中)。不幸的是,当我在调试中运行代码时,我意识到textarea没有被提交b / c参数为null。我试图解决它,我环顾四周,似乎正在做得很好。希望这是一个简单的解决方案。非常感谢您的时间!
控制器:
// 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>
答案 0 :(得分:12)
您的textarea需要一个名字才能发布。
<textarea rows="20" style="width:600px" id="textAnswer" name="textAnswer"></textarea>
同时从表单中删除enctype属性。
答案 1 :(得分:1)
文字区域不发布字符串,发布字符串数组。
你的控制器应该有这个签名:
public ActionResult q(string[] textAnswer)