有没有办法清除@ Html.TextAreaFor

时间:2017-01-06 19:06:15

标签: c# html asp.net-mvc textarea

我正在使用asp.net核心剃刀引擎。在TextArea中输入文本并点击提交按钮后,我想清除TexArea中的文本。我无法使用html或c#找到有关如何执行此操作的任何内容。 这是我的TextAreaFor

的代码
 <h1>Add Your Comment</h1>
                @using(Html.BeginForm("AddComment","Home"))
                {
                    <p>
                        <label>Your Comment</label>
                        @Html.TextAreaFor(d=>d.comment)
                        @Html.ValidationMessageFor(d => d.comment)
                    </p>

                    <input type="submit" name="submit" value="Add my Comment!"/>
                }

这是我的AddComment控制器

[HttpPost]
        [Route("addComment")]
        public IActionResult AddComment(Messages model)
        {  
            var user_id = HttpContext.Session.GetString("Id");
            if(user_id == null){
                return RedirectToAction("Index");
            }
            model.Users_id = Convert.ToInt32(user_id.ToString());
            userFactory.addComment(model, user_id);
            setTempData();

            ViewBag.Messages = userFactory.FindAll();
            model.comment ="";
            return View("Login", model);  
        }

对userFactory的调用工作,它是我的工厂调用我的数据库

2 个答案:

答案 0 :(得分:0)

完成所有工作后,您不应return View(...),而应将用户重定向到RedirectToAction。通过这样做,您可以清除所有表单字段,并使用Post-redirect-get pattern来阻止用户进行双重提交。

当您发布整个页面时,几乎总是应用相同的模式。

答案 1 :(得分:-1)

似乎您的帖子方法&#39; AddComment&#39;在这种情况下,再次返回此视图。在这种情况下,您可以发送模型的新引用以重置旧数据。类似的东西。

 [HttpPost]
 public ActionResult AddComment(YourModel objModel)
 {
    // your code
    return View("path of the view", new YourModel()); // don't send back objModel. It already contains data.
 }

在这种情况下,您的旧数据将被清除。

或者,如果您要清除任何特定字段,请更改 objModel 的特定属性,并将objModel发送到您的视图。