2013-12-12 30 views
0

我创建了一个搜索表单来查找MVC网站上的帖子。POST或GET在搜索表单中?

表单类型应该是POST还是GET?

我知道被获取可能为搜索添加书签等等。

使用GET的缺点?

谢谢你, 米格尔

+2

http://stackoverflow.com/questions/195212/what-are-the-advantages-of-using-a-get-request-over-a-post-request – Kamlesh

回答

1

随着GET动词,参数将在URL,没有HTTP请求体GET。与POST参数在请求正文。与GET是好的,因为用户可以复制/粘贴此路径并在任何地方共享。我经常在这种approuch中使用GET。

no limit for arguments on the URL of http

The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).

但随着贾森评论,浏览器可以有限制。

不管怎么说,用GET或,当你用这种approuch在数据库上搜索时,记得要用方法避免sql injection。如果你打算使用ado.net, use Parameters。如果你正在使用和ORM它会照顾你。

+0

我不修改任何数据,所以这就是为什么我想使用GET。我是否需要对插入输入内容的任何保护?基本上我通过获得长度高于4个字符的最多4个不同的单词来解析字符串。然后我在数据库中搜索标题中包含这些单词的帖子。 –

+0

我正在使用实体框架...在此之前,我拆分所有的单词,并获得一些满足我的标准,所以即使有某种脚本它将在该阶段被销毁...我认为 –

+0

浏览器有一个查询字符串限制。 http://stackoverflow.com/questions/812925/what-is-the-maximum-possible-length-of-a-query-string – Jasen

0

除非你正在修改数据时,我会去用GET。如果您总是获取数据并且不处理数据,我看不出什么缺点。

0

搜索不一定是帖子,你试图获取一些数据,而不是修改或插入。

+0

我不修改任何数据,所以这是为什么我想用GET。我是否需要对插入输入内容的任何保护?基本上我通过获得长度高于4个字符的最多4个不同的单词来解析字符串。然后我在数据库中搜索标题中包含这些单词的帖子。 –

+0

你可以使用其他技术来处理,如使用sql或存储过程中的参数,使用类似LINQ等。 –