【问题标题】:best practice for form submission表单提交的最佳实践
【发布时间】:2011-09-20 13:45:22
【问题描述】:

我目前正在为涉及大量输入的客户计划一个强大的表单。 我正在寻找一些关于提交的最佳实践或意见。 我需要使用 asp.net,我在 jquery、c# 和其他 .net 框架中工作。

所以我的问题是:
提交表单的最佳方式是什么?

  1. 我应该使用 Javascript 客户端和服务器端进行验证吗?
  2. 验证服务器端的最佳方法是什么? (asp.net C#)
    (编辑:实际的最佳做法是什么,使用 asp:requiredfieldvalidator 等或只是在后面的代码中编写规则?抛出错误?你怎么看?)
  3. 是否可以使用 ajax 将信息发送到公共网络方法?
  4. 使用公共网络方法是否存在安全风险
  5. 你使用什么策略?
  6. (编辑)你如何防止人们在保存时按 esc 或 url 栏中的 x? (我受到了阻止您的请求的影响

【问题讨论】:

  • 您使用的是什么演示框架?网络表单、MVC 等?
  • 天哪,我其实不知道,这个项目有一些遗留问题,所以不管那个框架是什么。当我发现时我会更新:)

标签: asp.net forms validation form-submit


【解决方案1】:
  1. 是的,它提供了更好的用户体验
  2. 使用 ASP.NET 验证器http://msdn.microsoft.com/en-us/library/debza5t0.aspx
  3. 通常是的,但 ASP 通常需要回发才能正常工作。
  4. 如果您的表单已加密,则目标也应加密
  5. 注意不要让复杂的 ASP 表单执行异步操作。简单的 ASP 表单效果很好。

【讨论】:

  • 绝妙的答案! (编辑:当我想要
    时按下 **** 输入按钮)... 使用异步的复杂表单有什么问题?更少的回帖 = 在我看来更好?
  • 异步更新倾向于使页面跳来跳去,你会失去对正在做的事情的关注等等。使用 ASP 可能很难做到正确。
  • 即使是简单的事情:按下提交 -> 加载栏 -> “完成...”
  • 我正在考虑根据之前的选择删除和​​添加输入元素的表单。或者列出在您单击过滤器输入元素时更新的视图。
  • 但是如果逻辑需要,有时候不是必须的吗?
【解决方案2】:

我应该使用 Javascript 客户端和服务器端进行验证吗? 是的。

验证服务器端的最佳方法是什么? 确保所有字段均有效,否则返回 HTTP 400 错误 - 使用您的 AJAX 处理程序拦截该错误并显示适当的错误。如果您不使用 AJAX,请使用 200 响应,返回完整的错误页面

是否可以使用 ajax 将信息发送到公共网络方法? 当然,为什么不呢?

使用公共网络方法是否存在安全风险? 是的。没有 SSL,数据容易被恶意攻击者拦截和/或修改

你使用什么策略? 嗯?

【讨论】:

  • “你使用什么策略?嗯?”哈哈哈哈,不忍直视了。现在我看它,它没有意义。我的意思是你是怎么做到的?
  • 这是一个糟糕的答案,没有任何理由/为什么不,以及为什么要向用户返回 http 400 错误!
  • "为什么要向用户返回 http 400 错误!"打败我
  • @BrianMcFarland 不,这不是更好。您对他的一个问题回答了“是”……这对 SO 来说还不够好。这只是为什么您的答案是错误答案的一个例子
猜你喜欢
  • 2022-11-22
  • 2012-03-03
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2011-12-26
  • 2014-11-10
相关资源
最近更新 更多