我正在使用mvc api和一个控制台应用程序,并将其作为服务使用。
mvc代码如下所示:
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = System.IO.Path.GetFileName(file.FileName);
var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
我尝试了不同的方法,在mvc方面我得到的只是file == null
,任何帮助?
答案 0 :(得分:1)
如果我理解正确,您正在尝试从控制台应用程序中创建一个Web请求,该请求应该触发控制器上的此特定方法。
无论出现什么问题,这都是调试它的正确方法:
1)使用浏览器测试方法。调试/纠正,直到它正常工作。
2)使用http调试器来嗅探正确的http请求(Fiddler应该做的工作)
3)使用控制台应用程序中的WebRequest
并制作其参数,以便您可以模仿使用Fidder嗅探的参数集
你已经完成了。
这种方法无法奏效。应用程序服务器无法告诉客户端触发请求。如果浏览器请求正常工作,那么您肯定可以使用WebRequest
模仿相同的参数集。 Fiddler(或类似的)可以帮助您找出特定的POST参数。
对我来说 - 很可能是你:
a)传递文件错误(编码错误,帖子参数之间错误的分隔符)(边界) b)未正确设置请求类型
无论如何 - 没有代码就无法说出来,因此我给你一个算法,你可以用来解决这个问题。