我试图解释为什么用户能够两次提交相同的表单详细信息。起初,我认为提交按钮被推了两次,情况可能仍然如此。
当我在数据库中检查结果时,我可以看到已输入两次相同的信息,但也输入了相同的日期时间戳,一直到第二个。如果是这种情况,肯定需要至少再推一次提交。
此外,在输入并保存调查后,用户将被重定向到其他页面。
为什么会这样?
[HttpPost]
public ActionResult InputResult(SurveyViewModel model)
{
if (ModelState.IsValid)
{
Survey_Result InputResult = new Survey_Result();
InputResult.SurveyStatusID = model.SurveyStatusID;
InputResult.Q1DateCompleted = DateTime.Now;
InputResult.Q2 = model.Q2;
InputResult.Q3 = model.Q3;
InputResult.Q10 = model.Q10;
InputResult.Q11 = model.Q11;
InputResult.Q11Other = model.Q11Other;
InputResult.DateAdded = DateTime.Now;
InputResult.AddedBy = Convert.ToInt32(User.Identity.GetUserId());
_surveyService.AddSurvey(InputResult);
_surveyService.Save();
return RedirectToAction("Details", "Survey", new { id = model.SurveyStatusID, feedback = "InputComplete" });
}
return RedirectToAction("Details", "Survey", new { id = model.SurveyStatusID, feedback = "InputError" });
}
答案 0 :(得分:1)
代码看起来很好。如果您有权访问该用户,则可以在其上弹出Fiddler以查看它是否两次发布数据。如果它不是一直发生那么它几乎肯定是用户错误恕我直言。
如果您无权访问客户端,则可以在每个帖子请求或调试行上的日志条目中弹出,如果您有能力在此服务器上收集它。
我有类似的问题和客户端javascript禁用点击按钮为我做了伎俩。
答案 1 :(得分:-1)
您确定需要AddSurvey和Save吗?
删除保存并重试。