正如标题所说,在我的 MVC3 应用程序中,我正在向控制器发送 POST 请求并收到 400 错误。
该请求包含一个 id,控制器使用该 id 检索文件的内容并在响应中将其发回。
我阅读了一些相关的 stackoverflow 帖子,这些帖子表明它可能是由我正在使用的硬编码 URL 引起的,但此后我使用了 URL 帮助程序并继续遇到此问题。
这是我的控制器:
[HttpPost]
public ActionResult GetContent(string id)
{
// Decrypt string to get filepath.
string file = EncryptStrings.DecryptAESString(id);
string content = String.Empty;
if(System.IO.File.Exists(file))
{
content = System.IO.File.ReadAllText(file);
}
return Content(content);
}
我的 jQuery 代码:
function setContent(id) {
$.post('@Url.Action("GetContent", "Content")/' + id, null,
function (data) {
$('#article').html(data);
bringToFront('article-container');
}, 'text');
}
以及请求的示例(我增加了 maxUrlLength 以允许长请求):
http://localhost/KBLite/Content/GetContent/545E55A34A5B6EE892286D481D177C149A003AAA0F44FAAD432970A9BADA5B79713344D2D80580DCA3345D520742E358A2089BF2E01EA553203AFCA27C96B4150923D33EC57D93F55241F9398D217E3B38609449CB64DCD2D2C31C850E5EBB452CC5A8F3B2F71D0B30E282D16F394FDC60696C3661372B1D200AE1B45371473DD7DC077BEAE475CD7D498F0AEDD63727
有什么想法吗?