如何从 Javascript 调用 URL 操作

本文关键字:URL 操作 调用 Javascript | 更新日期: 2023-09-27 17:57:00

我在做:

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 调用 URL 操作

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

您有以下几种选择:

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

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

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

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

在您的剃须刀标记中添加以下内容:

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

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

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

我更喜欢第二种选择。

你需要使用下面的Html.Raw检查

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