0

AJAXを1つのページで機能させていますが、すべてのページで機能させたいと考えています。どうすればそれを達成できますか?

これが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 に答える