2011-09-20 71 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 - 那更好嗎? –