Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-发布到控制器时,表单集合为空_C#_Asp.net_Asp.net Mvc_Delphi - Fatal编程技术网

C# ASP.NET 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

我有一个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的原因。我相信这一点不是问题所在

我有人试图使用德尔福的这个。出于某种原因,每当调用此方法时,表单集合都是空的

我知道这可能是一个德尔菲问题,但我想知道是否有人经历过类似的事情。他使用的是样板代码,这是在数百篇在线文章、博客和论坛帖子中发布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请求是如何制定的?你展示了控制器的动作方法,这段代码没有错。伊戈尔,请看这里的第一个答案,因为这段代码基本上与你在任何地方都能找到的代码相同。他用的是这样的东西,为什么这被否决了?