2013-12-22 61 views
0

我有一個jQuery腳本中的兩個調用@Url.Action()方法,我不知道爲什麼第一個調用產生正確的URL,但第二個沒有。Url.Action方法不會生成正確的URL

.jqGrid('navButtonAdd', "#SectionsPager", { 
     caption: "Add ", 
     title: "Add new section.", 
     buttonicon: "ui-icon-add", 
     onClickButton: function() 
     { 
      location.assign("@Url.Action("Index", "Home")"); 
     } 
    }) 
    .jqGrid('navButtonAdd', "SectionsPager", { 
     caption: "Edit ", 
     title: "Edit selected cell.", 
     buttionicon: "ui-icon-edit", 
     onClickButton: function() 
     { 
      location.assign("@Url.Action("EditSection")"); 
     } 
    }); 

如果我查看針對第一呼叫正確生成的URL /DataArea/(控制器和視圖是在名爲「DataArea中的」 Area)的頁面的源。但第二個調用只是生成/DataArea/Sections/這是它正在呈現的頁面的URL。我甚至試過

"@Url.Action("EditSection", "Section")");

,但它做同樣的事情。爲什麼第二次調用不生成正確的URL?

+0

需要注意的是,如果我將第一個「Url.Action」更改爲EditSection,它也無法正確呈現URL。 – Matthew

回答

0

我修復了它,但我不確定它爲什麼壞了。在我的.cs文件我用的是:

[Route] 
    public ActionResult EditSection() 
    { 
     return View(); 
    } 

其中,根據所有文件我能找到,意味着該路徑應該是/EditSection,如果我鍵入的URL我甚至可以通過該途徑訪問我的瀏覽器。玩了一段時間後,我結束了使用

[Route("EditSection")] 
    public ActionResult EditSection() 
    { 
     return View(); 
    } 

和現在@Url.Action("EditSection")正在工作的權利。我認爲這可能是新的mvc5屬性路由中的一個錯誤。如果我能確定它確實是一個錯誤,我將更多地使用它並向MS發送一份報告。