0

嗨朋友们,我正在尝试以这种方式在 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:没有为此对象定义无参数构造函数。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

我尝试了很多方法但每次我都失败了

4

2 回答 2

1

在您尝试访问构造函数并且不传入任何参数的地方,您向我们展示的所有构造函数都需要某个参数,尽管我在您的代码中看不到您执行此操作的任何地方,因此问题可能出在另一部分的应用程序,

请调试并逐步检查,找到它中断的确切行,并检查您是否明确地将参数传递给构造函数。

于 2012-07-18T13:08:13.577 回答
0

一种猜测是您已经为您的控制器定义了一个带有参数的构造函数。

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

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

于 2012-07-18T15:59:15.393 回答