2013-02-21 60 views
0

我的AJAX爲單個頁面工作,但我希望它可以在所有頁面上工作。我怎樣才能做到這一點?在共享MVC組件中使用AJAX

這裏是JavaScript在scripts.cshtml:

function changeTab(tabId) { 
    var url = "Home/changeTab/" + tabId; 
    $.ajax({ 
     url: "Home/changeTab/" + tabId, 
     success: function (tab) { 
      var t = tab; 
      $("#menu1").html(t); 
     } 
    }); 
} 

我有一個組件Home.cs:

namespace Web.Controllers 
{ 
    public class HomeController : Controller 
    { 
    [Authorize] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [AcceptVerbs("GET")] 
    public JsonResult changeTab(int id) 
    { 
     var saveTab = id; 
     string username = User.Identity.Name; 
     [...] 
     return Json(username, JsonRequestBehavior.AllowGet); 
    } 
    } 
} 

代碼工作很好的主頁上,而不是任何其他。我應該在哪裏放置changeTab函數,以便每個頁面都可以調用它?

+0

也許你的意思是'URL: 「/ changeTab /」 + tabId'? – 2013-02-21 06:07:32

回答

1

試着改變你的腳本爲以下:

function changeTab(tabId) { 
    var url = '@Url.Action("changeTab", "Home")/' + tabId; 
    $.ajax({ 
     url: url, 
     success: function (tab) { 
      var t = tab; 
      $("#menu1").html(t); 
     } 
    }); 
} 
+0

工作正常!謝謝。 – 2013-02-21 06:22:08