0

我让 AJAX 为单个页面工作,但我希望它可以在所有页面上工作。我怎样才能实现它?

这是 scripts.cshtml 中的 JavaScript:

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 函数以便每个页面都可以调用它?

4

1 回答 1

1

尝试将您的脚本更改为以下内容:

function changeTab(tabId) {
    var url = '@Url.Action("changeTab", "Home")/' + tabId;
    $.ajax({
        url: url,
        success: function (tab) {
            var t = tab;
            $("#menu1").html(t);
        }
    });
}
于 2013-02-21T06:09:35.353 回答