gpt4 book ai didi

javascript - jquery 加载对 Controller 的调用并填充 div 元素

转载 作者:行者123 更新时间:2023-11-30 11:48:35 25 4
gpt4 key购买 nike

我的 index.cshtml 中有一个带有 id #myresults 的 div 元素,我正在尝试通过调用 mvc Controller 方法通过 jquery.load 方法加载数据。但我无法获得正确的语法。

我也将自定义对象作为参数传递。

var mycustomObject = {
obj1:value1,
obj2:value2,
..
}

以下不起作用...(我也尝试过其他组合...我收到服务器未找到错误)

$("#myresults").load ('@Url.Action("MyActionMethod","Home")',mycustomObject);

而下面的工作

$("#myresults").load('/Home/MyActionMethod', mycustomObject);

虽然最后一条语句有效,但它仅适用于本地主机。

使用 Url.Action 加载 jquery 的正确语法是什么?

最佳答案

@Url.Action()将始终生成正确的 url,因此如果您收到 404,则表示此代码位于外部脚本文件中。 Razor 代码不在外部脚本中执行,因此您的 url 字面意思是文本“@Url.Action("MyActionMethod","Home")"。

解决这个问题的选项包括

  1. 将代码移动到 View 或其布局中
  2. 在 View 中声明全局变量 - var url =
    '@Url.Action("MyActionMethod","Home")';
    在外部文件中使用 $("#myresults").load(url, mycustomObject);
  3. 将 url 分配给元素作为 data-*属性,例如 <button type="button" id="loadSomething" data-url="@Url.Action("MyActionMethod","Home")">...</button> ,并在外部文件

    $('#loadSomething').click(function() {
    var url = $(this).data('url');
    $("#myresults").load(url, mycustomObject);
    });

关于javascript - jquery 加载对 Controller 的调用并填充 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com