我有一个MVC控制器,其方法如下......
[HttpPost]
[ValidateInput(false)]
public ActionResult TestPost(FormCollection fc) {
string res = "Form values (" + fc.Count + "):";
foreach (var key in fc.AllKeys) {
res += key + "=" + fc[key] + "|";
}
return ControllerUtils.XmlView(View("Ok", (object)res));
}
这样做的目的是测试其他人对控制器进行HTTP POST。最后一行只调用一个实用程序方法,该方法在其中一个标记中返回一个视图,该视图包含一些带有传递字符串的XML(强制转换为对象以避免编译器错误)。最终的想法是让他发布XML,这就是我回归XML的原因。我确信这不是问题所在。
我有人试图从Delphi中使用它。出于某种原因,无论何时调用此方法,表单集合都是空的。
我知道这可能是德尔福的问题,但我想知道是否有人经历过这样的事情。他正在使用样板代码,它显示为在数百个在线文章,博客和论坛帖子中进行HTTP POST的事实上的方法,因此很难说这是错误的,但是上面的控制器代码是如此简单以至于它是很难看出这里有什么问题。
任何想法为什么表单集合总是空的?有什么我可能做错了吗?
答案 0 :(得分:0)
我建议编写一个类似的方法,将res
输出到字符串而不是ActionResult
[HttpPost]
[ValidateInput(false)]
public string TestPost(FormCollection fc) {
string res = "Form values (" + fc.Count + "):";
foreach (var key in fc.AllKeys) {
res += key + "=" + fc[key] + "|";
}
return res;
}
在这种情况下,表格是否仍然是空的?
答案 1 :(得分:0)
原来这个问题与代码本身无关,但是他的代码对安全域执行POST的问题。我将服务移动到正常(即非SSL)域,并且工作正常。
因此,我们必须弄清楚为什么他不能发布到安全域名,但这与此问题不同。
感谢所有回复的人。希望这对某人有用。