C# ASP.NET MVC-发布到控制器时,表单集合为空
我有一个MVC控制器,它的方法如下C# ASP.NET MVC-发布到控制器时,表单集合为空,c#,asp.net,asp.net-mvc,delphi,C#,Asp.net,Asp.net Mvc,Delphi,我有一个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 ControllerU
[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的原因。我相信这一点不是问题所在
我有人试图使用德尔福的这个。出于某种原因,每当调用此方法时,表单集合都是空的
我知道这可能是一个德尔菲问题,但我想知道是否有人经历过类似的事情。他使用的是样板代码,这是在数百篇在线文章、博客和论坛帖子中发布HTTP帖子的实际方法,因此很难说这是错误的,但是上面的控制器代码非常简单,也很难看出这里有什么错
有人知道为什么表单集合总是空的吗?有什么我可能做错了吗?我建议编写一个类似的方法,将
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;
}
在这种情况下,表单是否仍然为空 结果表明,问题与代码本身无关,而是他的代码在安全域中发布的问题。我将服务移动到了一个普通的(即非SSL)域,它工作得很好 所以,我们必须弄清楚为什么他不能发布到一个安全域,但这是一个与此不同的问题
感谢所有回复的人。希望这对某人有用。结果是一样的。表单集合本身是空的,与我返回的内容无关。我在方法开始时测试了集合,可以看到它是空的。谢谢你,还有其他想法吗?对不起,我应该把它作为一个评论,而不是一个回答。没问题,我很感激你的回复,不管是哪种形式!发送到MVC应用程序的POST请求是如何制定的?你展示了控制器的动作方法,这段代码没有错。伊戈尔,请看这里的第一个答案,因为这段代码基本上与你在任何地方都能找到的代码相同。他用的是这样的东西,为什么这被否决了?