我正在使用facebook c#sdk
创建一个mvc3画布应用程序方法名称为创建。
我也发帖并使用 [HttpPost]属性创建另一个创建方法。
当我向两个create方法添加 [CanvasAuthorize(Permissions = ExtendedPermissions)] 属性时,来自另一个页面的链接调用此create方法,通常会调用get方法但在这种情况下,post方法被称为
但如果我评论帖子方法,那么就会转到get方法。
任何想法如何解决这个问题。
由于 ARNAB
答案 0 :(得分:0)
我有同样的问题。之前它正在进行GET,然后突然浏览到[CanvasAuthorize(Permissions = ExtendedPermissions)]属性的动作时,它正在执行POST而不是GET。
答案 1 :(得分:0)
这是因为画布授权将访问令牌发布到页面中。我找到的唯一方法是创建一个不同的动作来处理帖子并在视图中使用该动作作为帖子目标。它看起来像这样:
// /MyController/MyAction
// Post and Get
[CanvasAuthorize(Permissions = ExtendedPermissions]
public ActionResult MyAction(MyModel data)
{
MyModel modelData = data;
if(data==null)
{
modelData = new MyModel();
}
else
{
modelData = data;
}
return View(modelData);
}
// /MyController/MyActionPost
// POST only
[HttpPost]
[CanvasAuthorize(Permissions = ExtendedPermissions]
public ActionResult MyActionPost(MyModel data)
{
if(Model.IsValid)
{
//Processing code with a redirect at the end (most likely)
}
else
{
return View("MyAction", data);
}
}
然后在你的MyAction视图中:
@using (Html.BeginForm("MyActionPost", "MyController"))
{
<!-- Form items go here-->
<inpuy type="submit" value="Submit" />
@Html.FacebookSignedRequest()
}