表格从MVC Controller Action提交两次

时间:2014-10-24 11:52:17

标签: c# asp.net-mvc forms form-submit

我试图解释为什么用户能够两次提交相同的表单详细信息。起初,我认为提交按钮被推了两次,情况可能仍然如此。

当我在数据库中检查结果时,我可以看到已输入两次相同的信息,但也输入了相同的日期时间戳,一直到第二个。如果是这种情况,肯定需要至少再推一次提交。

此外,在输入并保存调查后,用户将被重定向到其他页面。

为什么会这样?

[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" });
}

2 个答案:

答案 0 :(得分:1)

代码看起来很好。如果您有权访问该用户,则可以在其上弹出Fiddler以查看它是否两次发布数据。如果它不是一直发生那么它几乎肯定是用户错误恕我直言。

如果您无权访问客户端,则可以在每个帖子请求或调试行上的日志条目中弹出,如果您有能力在此服务器上收集它。

我有类似的问题和客户端javascript禁用点击按钮为我做了伎俩。

答案 1 :(得分:-1)

您确定需要AddSurvey和Save吗?

删除保存并重试。