javascript - 如何从 Javascript 调用 URL Action ?

标签 javascript c# asp.net asp.net-mvc razor

我在做:

var url = '@Url.Action("Attachments", "Transactions")';
url += '/?id=' + 3201;
$("#attachments").load(url);

但是,在加载时它不执行任何操作。我错过了什么吗?

我基本上想调用类似于:

@{Html.RenderAction("Attachments", "Transactions", new { id = 3301 });}

我在控制台上收到以下错误:

http://server:54137/Transactions/@Url.Action(%22Attachments%22,

最佳答案

您必须使用外部 JavaScript 文件,该文件不会解析您的 Razor 语法,因此您的控制台中出现错误 @Url.Action(%22Attachments%22.

你有几个选择:

  1. 创建一个 JavaScript 函数并传入 url:

    函数 loadUrl(url) { $("#attachments").load(url); }

然后在您的 Razor 中在脚本标记内调用它:

loadUrl(@Url.Action("Attachments", "Transactions", new { id = @Model.Id })
  1. 将 url 作为数据添加到 html 元素,并使用 data 方法从 JavaScript 中读取它。

在你的 razor 标记中添加:

<button data-url="@Url.Action("Attachments", "Transactions", new { id = @Model.Id })" />

从您的 JavaScript 事件处理程序读取它:

var url = $(this).data('url');
$("#attachments").load(url);

我更喜欢第二种选择。

关于javascript - 如何从 Javascript 调用 URL Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932671/

相关文章:

asp.net - 版面无法在asp.net Core 3.0的使用者设定档上使用

javascript - api v 3 谷歌地图选择城市

c# - 多次使用相同变量的插入语句

asp.net - Internet Explorer忽略URL中的标签

c# - 从部署在 Sharepoint 中的 aspx 页面调用自定义成员资格提供程序时出现问题

c# - 为什么要使计时器回调静态?

c# - ASP.NET 中用于 Page_Load 的自定义属性

javascript - 无法通过 javascript 向 php 提交表单

javascript - 如何在vue js的更新页面中选择类

javascript - JQuery animate() 没有动画