2015-09-16 20 views
1

我遇到了sitefinity應用程序的問題。我使用的是sitefinity 8.1附帶的MVC 5。我的問題是,當我在actionresult名稱中使用連字符時,根據請求收到404錯誤。Sitefinity 8.1 MVC連字符問題

[ActionName("some-thing")] 
    public ActionResult PersonalChecking(string prodid = null) 
    { 
     var model = new OACWidgetModel(); 

     return View(model); 
    } 

任何幫助,將不勝感激。

回答

0

試試Route屬性而不是ActionName。

[Route("some-thing")] 
public ActionResult PersonalChecking(...) 
{...} 
+0

感謝您的回覆,的確actionName不MVC 5.工作這也許可以解釋爲什麼代碼Sitefinity 7 我想你的建議的工作,但我仍然獲得了404的時候我要求本地主機:80/somepagename /一些-事情。 我發現這篇文章http://docs.sitefinity.com/feather-use-the-relative-routes-api顯示了RelativeRoute的使用,但似乎也沒有工作。 文章說,那麼當使用RelativeRoute時,不需要調用MapMvcAttributeRoutes。 有什麼想法? –

+0

只需確認 - somepagename頁面是否實際包含MVC小部件?小部件是否有索引方法?它是否在初始加載頁面時被調用? 你可以在PErsonalChecking方法中放置一個斷點,看它是否也被調用。 –

+0

是的,它在頁面上有小部件。是的,當我在調試模式下加載頁面時,我可以使索引操作正常工作。所有不包含連字符的動作似乎都能正常工作。 –

2

我終於明白了爲什麼它不起作用。 顯然,Sitefinity要求在操作名稱中爲特殊字符啓用EnableBackwardCompatabilityForPagesUrls。

要啓用此功能,請轉到管理 - >設置 - >高級 - >頁面,然後選中名爲EnableBackwardCompatabilityForPagesUrls的複選框,然後按保存更改。

固定! :)