2011-09-20 110 views
1

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

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

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

您使用的是什么演示文稿框架? Webforms,MVC等? –

+0

上帝,我其实不知道,该项目带有一些遗产,所以无论框架是什么。我会更新,当我发现:) – MrJD

回答

2
  1. 是,它使一个更好的用户体验
  2. 使用ASP.NET验证器http://msdn.microsoft.com/en-us/library/debza5t0.aspx
  3. 一般来说是的,但ASP通常需要对任何工作回发。
  4. 如果您的表单已加密,目标也应该加密
  5. 小心不要让复杂的ASP表单做异步。普通的ASP表单运行良好。
+0

梦幻般的答案! (编辑:当我想要时按下****输入按钮
)...使用异步的复杂表单有什么问题?在我看来,后发较少=更好? – MrJD

+0

异步更新有导致页面跳转的倾向,您失去了对正在进行的操作的关注等等。使用ASP很难做到这一点。 – mre666

+0

即使是这样简单的事情:按提交 - >加载栏 - >“完成...” – MrJD

0

我应该验证使用JavaScript客户端和服务器端?YES。

最新最好的方法来验证服务器端?确保所有字段都是有效的,否则返回HTTP 400错误 - 拦截AJAX处理程序错误并显示相应错误。如果不使用AJAX,请回复w/a 200返回完整错误页面

可以使用ajax发送对公共Web方法? 当然,为什么不呢?

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

你使用什么策略? 咦?

+0

“你使用什么策略?咦?”哈哈哈,生病摆脱它。现在我看着它,它没有意义。我的意思是你如何做到这一点? – MrJD

+0

这是一个不好的答案,没有任何理由为什么/为什么不,以及为什么你会向用户返回http 400错误! –

+0

@Tim - 那更好吗? –