Razor 为什么webmatrix cshtml出现HTTP-400错误请求?

Razor 为什么webmatrix cshtml出现HTTP-400错误请求?,razor,webmatrix,http-status-code-400,Razor,Webmatrix,Http Status Code 400,为什么我要提交一个URL,如: localhost:38245/团队合作/Group/1/LONG-COMMENT-POSTED-BY-USER 我收到一个错误,上面写着“错误请求-无效URL HTTP错误400。请求URL无效。”?IIS中URL的默认最大长度为4096。用户发表的评论很可能违反了这一点。通常,传输此类数据的最佳方式是通过POST而不是URL。您可以在IIS配置的requestLimits部分将注释修剪为更合适的大小,增加maxUrl值:首先,HTTP 400错误适用于客户端出

为什么我要提交一个URL,如:

localhost:38245/团队合作/Group/1/LONG-COMMENT-POSTED-BY-USER


我收到一个错误,上面写着“错误请求-无效URL HTTP错误400。请求URL无效。”?

IIS中URL的默认最大长度为4096。用户发表的评论很可能违反了这一点。通常,传输此类数据的最佳方式是通过POST而不是URL。您可以在IIS配置的requestLimits部分将注释修剪为更合适的大小,增加maxUrl值:

首先,HTTP 400错误适用于客户端出错的情况。正如您所注意到的,这是一个错误的请求错误。因此,这意味着可能由于语法错误,请求无法执行。正如Mike Brind提到的,您很可能超过了URL的最大长度(不管怎样,默认值)

其次,你为什么要通过URL“提交”一篇长文章?改用POST方法。实现这一点的一种方法是使用Jquery的Post方法。看见或者简单地通过OnClick方法调用表单的submit方法,或者用户提交表单的方式


POST非常适合传输大量数据。因此,从客户端提交数据,到目前为止最简单的方法是使用POST来归档

正如您在问题代码部分所述

localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
用户的长评论必须在网站的
web.config
文件中的限制范围内

其次,任何服务器都不会允许一个很长的Url,认为用户可能试图发布恶意软件。此外,使用短URL有利于数据传输,因为它们消耗的数据更少

通过对请求的限制,我们很容易理解URL必须小于4096字节,只有4KB。那么你认为,所有的URL都是4KB吗


正如Mike建议使用POST请求发送长数据一样,我还建议您使用HttpPost请求发送此类长数据。这样,浏览器将加密数据并将其作为请求的附件发送

我的问题是,我使用XMLHttp requets获取(例如)textarea(用户在其中写入注释)的值,然后以链接的形式(如我展示的)将其发送到cshtml文件,该文件将“LONG-comment-post-BY-user”插入数据库。所以,每当我写一篇长文章时,它都会告诉我400个错误。我还必须使用“post”吗?