2012-07-18 143 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會期望你的控制器有一個無參數的構造函數。