我在mvc 4.0中提交了一个关于提交事件的表单。提交表单后发布到其操作并创建记录。创建记录后,当我刷新页面,然后创建另一个重复的记录。如何防止在MVC中发布表单后页面刷新时数据库中的重复条目
我已经使用下列但没有成功:
ModelState.Clear();
ModelState.SetModelValue("Key", new ValueProviderResult(null, string.Empty, CultureInfo.InvariantCulture));
ModelState.Remove("Key");
我不希望使用AJAX形成后,也不想另一页上重定向。
有没有什么办法可以在asp.net中使用,例如在mvc4.0中的!Page.IsPostBack()
。
我不想使用会话也。 (微软吹的MVC,MVC没有任何视图状态像asp.net,但现在我不这么认为)。
Page.IsPostBack并不妨碍这一点,即使你写的代码说!Page.IsPostBack,因为浏览器重新完全相同requrest,这将是一个回传,并再次插入记录。 – 2013-03-11 13:37:45
我要求解决方案!!Page.IsPostBack() – 2013-03-11 13:40:19
状态将在哪里保存?浏览器在重新加载页面时不会修改请求,我没有会话,也没有Cookie。所以你的服务器端永远不会知道它是重复的。您必须写入数据库或重定向到某处,或将此状态存储在别处。 – Aneri 2013-03-11 13:48:16