朋友们,我正试图以这种方式在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请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
我正在尝试这么多方法,但每次我都失败
答案 0 :(得分:1)
请调试并逐步执行,找到它打破的确切行,并检查您是否确定将参数传递给构造函数。
答案 1 :(得分:0)
有一种猜测是你为控制器定义了一个带参数的构造函数。
每当一个类没有构造函数时,默认情况下就会存在一个隐藏的无参数(没有参数)构造函数。
每当您创建一个带参数的构造函数时,您就不再获得该自动默认构造函数。 MVC期望你的控制器有一个无参数构造函数。