Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP jQuery.load方法未触发控制器操作方法_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript ASP jQuery.load方法未触发控制器操作方法

Javascript ASP jQuery.load方法未触发控制器操作方法,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我正在尝试使用AJAX和使用实体框架的JQuery在局部视图中显示列表。预期的功能是让用户能够单击导航栏上的操作链接,从而触发JQuery事件,将控制器操作方法中的列表注入局部视图。为此,我使用.load()jQuery方法。但是,每次单击操作链接时,jquery事件都会正确触发,但控制器方法永远不会调用部分视图 通过查看Chrome中的NewWork选项卡,我可以看到以下内容: 以下是我的设置: HomeController public ActionResult ListeArtistes(

我正在尝试使用AJAX和使用实体框架的JQuery在局部视图中显示列表。预期的功能是让用户能够单击导航栏上的操作链接,从而触发JQuery事件,将控制器操作方法中的列表注入局部视图。为此,我使用.load()jQuery方法。但是,每次单击操作链接时,jquery事件都会正确触发,但控制器方法永远不会调用部分视图

通过查看Chrome中的NewWork选项卡,我可以看到以下内容:

以下是我的设置:

HomeController

public ActionResult ListeArtistes()
{
    ViewBag.Message = "Your application description page.";
    Debug.WriteLine("Liste artistes called");
    return PartialView(db.Artistes.ToList());
}
在_Layout.cshtml中,我有一个id为的操作链接:

@Html.ActionLink("Artistes", "", "", new { id = "Artistes" })
在_Layout.cshtml的底部:

<script src="~/Scripts/MediaScripts.js"></script>
你知道我可能做错了什么吗? 谢谢你的提示


-Jeff

Razor代码在您将其放入JS文件时无法正常工作,就像您使用MediaScripts.JS时所做的那样:

function onNav_ListeArtistes() {
    $("#viewPlaceHolder").load('@Url.Action("ListeArtistes", "Home")') // <- This will not work.
        .on("click", function () { artisteListeAlbum(); });
}
然后在JS文件中执行以下操作:

function onNav_ListeArtistes() {
    $("#viewPlaceHolder").load($('body').data('artistes-url')) <-- here you retrieve the URL stored into data-artistes-url attributes.
        .on("click", function () { artisteListeAlbum(); });
}
函数onNav_listeArtisters(){
$(“#viewPlaceHolder”).load($('body').data('artistes-url'))这很管用!谢谢你的提示:)但是,有没有办法让它独立于视图?我没有使用url.Action,而是尝试了从脚本到控制器操作的特定路径:$('#liste').load(“/Home/artistes”);但它不起作用。我希望能够simpy将html内容注入到视图中,并在服务器端管理其余内容…您可以直接将相对URL粘贴到JS文件中,但使用此方法更易于维护,因为如果控制器的操作名称更改,则无需更改JS文件。太好了!再次感谢我的支持我的头靠在墙上。
<body data-artistes-url='@Url.Action("ListeArtistes", "Home")'>
<!-- other markups -->
</body>
function onNav_ListeArtistes() {
    $("#viewPlaceHolder").load($('body').data('artistes-url')) <-- here you retrieve the URL stored into data-artistes-url attributes.
        .on("click", function () { artisteListeAlbum(); });
}