2012-07-18 137 views
0

喜的朋友我试图用这种方式张贴在墙上的Facebook照片如何在Facebook墙上上传照片?

这里我控制代码:

公共类测试 {

 public FacebookMediaObject mediaObject { get; set; } 
    } 

public ActionResult Profile(FacebookOAuthResult facebookoAuthResult) 
{ 
    DisplayAppropriatemessage(facebookoAuthResult); 

    // redirect back to the index action to show the form once again 
    return RedirectToAction("Profile"); 
} 

private void DisplayAppropriatemessage(FacebookOAuthResult facebookoAuthResult) 
{ 
    if (facebookoAuthResult != null) 
    { 
     if (facebookoAuthResult.IsSuccess) 
     { 
      var mediaObject = new FacebookMediaObject 
      { 
       ContentType = "image/jpeg", 
       FileName = Path.GetFileName(path) 
      } 
      .SetValue(System.IO.File.ReadAllBytes(path)); 

      var fb = new FacebookClient(facebookoAuthResult.AccessToken); 

      fb.PostAsync("https://graph.facebook.com/me/photos", new Dictionary<string, object> { { "source", mediaObject } }); 
     } 
    } 
    throw new NotImplementedException(); 
} 

这里我profile.cshtml代码:

@using (Html.BeginForm("Profile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    <input type="file" name="file" id="file" /><br /> 
    <input type="submit" value="Upload" /> 
} 

而我运行这段代码,当我点击后按钮,它给下面的错误

'/'应用程序中的服务器错误。 没有为此对象定义的无参数构造函数。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.MissingMethodException:没有为此对象定义的无参数构造函数。

源错误:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

我试图以多种方式,但每次我我失败

+0

您的控制器是否有定义的构造函数? – AaronLS 2012-07-18 06:12:37

+0

是的那些是[httppost]和[ValidateInput(false)] [AcceptVerbs(HttpVerbs.Post)] – siva 2012-07-18 06:27:39

+1

请向我们展示堆栈跟踪,将有助于查明您试图调用无参数构造函数的位置 – RhysW 2012-07-18 13:09:22

回答

1

某处你试图访问一个构造函数和传递任何参数,所有构造函数的你已经显示我们需要一个特定的参数,虽然我看不到你的代码中的任何地方,所以这个问题可能在应用程序的另一部分,

请调试并逐步通过,找到确切的行打破并检查你的德最终将一个参数传递给构造函数。

+0

像'FacebookMediaObject {'这样的东西需要一个无参数的构造函数,但是,如果这是问题,那么他甚至不应该能够编译它。因此,我认为有问题的代码没有显示,实际上是在cshtml中,或者是框架调用的某个问题,例如Controller没有无参数构造函数。 – AaronLS 2012-07-18 16:26:41

0

一个猜测是你已经定义了一个控制器的构造函数,它需要一个参数。

每当一个类没有构造函数时,默认情况下存在一个隐含的无参数(无参数)构造函数。

每当你创建一个带参数的构造函数时,你就不会再得到那个自动的默认构造函数。 MVC会期望你的控制器有一个无参数的构造函数。