我在做:
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.
。
你有几个选择:
创建一个 JavaScript 函数并传入 url:
函数 loadUrl(url) { $("#attachments").load(url); }
然后在您的 Razor 中在脚本标记内调用它:
loadUrl(@Url.Action("Attachments", "Transactions", new { id = @Model.Id })
- 将 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/