1

我剛剛開始使用Facebook C#SDK的ASP.Net MVC 3。到目前爲止我的運氣還不錯,但在Controller方法中返回RedirectToAction或CanvasRedirectToAction時遇到了問題。RedirectToAction/CanvasRedirectToAction給404錯誤,因爲在URL中重複虛擬目錄名稱

當我點擊任一提交或在下面的視圖中創建New_按鈕,我總是發送到 /應用 /應用/事件/創建代替應用程序/事件/創建,導致在404

在此先感謝!

EventController:

[CanvasAuthorize(Permissions = "user_about_me,user_events,create_event")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
    [CanvasAuthorize(Permissions = "user_about_me,user_events,create_event")] 
    public ActionResult Create() 
    { 
     return View(); 
    } 
    [CanvasAuthorize(Permissions = "user_about_me,user_events,create_event")] 
    public ActionResult Persist() 
    { 
     return this.CanvasRedirectToAction("Index", "Event"); 
    } 

事件/ Create.cshtml

@using Facebook.Web.Mvc 

    @model App.Models.Event 

    @{ 
     ViewBag.Title = "Create"; 
    } 

    <h2>Create</h2> 

    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script> 
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

    @using (Html.BeginForm("Persist", "Event")) { 
    @Html.FacebookSignedRequest(); 
    @Html.ValidationSummary(true) 
    <fieldset> 
    <legend>Event</legend> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Name) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Name) 
      @Html.ValidationMessageFor(model => model.Name) 
     </div> 

     <p> 
      <input type="submit" value="Create" /> 
      @Html.CanvasActionLink("Create New", "Persist") 
     </p> 
    </fieldset> 
    } 
+0

以及你在同一個控制器中簡單地返回RedirectToAction(「[actionname]」);將做這項工作,但你有一個無盡的循環,你有行動堅持重定向到堅持! – davethecoder

+0

你是對的我犯了一些錯誤把代碼放在一邊......我試過這樣做,但很遺憾沒有任何運氣 – David

回答

0

它不會出現像它很容易成爲可能。我的猜測是,查看C#SDK中框架中的URL的JavaScript在創建正確的重定向路徑方面做得並不好。我剛擺脫虛擬目錄來解決問題。