gpt4 book ai didi

javascript - 从 javascript 调用 ASP.NET MVC 应用程序的 URL

转载 作者:行者123 更新时间:2023-11-28 03:04:57 26 4
gpt4 key购买 nike

我是 ASP.NET MVC 新手。在阅读了许多不同的示例后,我仍然无法完成此操作。

我捆绑了一些 JS 脚本,并在 bundle 之外添加了一个(因为我在每个页面使用不同的主脚本)

(_Layout.cshtml)

@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/datatables")
@RenderSection("scripts", required: false)

在我看来

(index.cshtml)

@section Scripts
{
<script src="@Url.Content("~/Scripts/index.js")"></script>
}

在 javascript 代码中,我尝试调用应用程序的特定 URL

(index.js)

$('#table').DataTable({
ajax: '@Url.Action("List", "Documents")'
});

当然,在我的应用程序中, Controller 是使用名称 DocumentsController 和 List 方法定义的,返回正确的 JSON。

但似乎没有人会替换我的网址

enter image description here

如果我将我的 index.js 包含在 bundle 中,则不会发生任何变化。错误在哪里?谁以及何时替换该 URL?

谢谢

最佳答案

您不能在 *.js 文件中使用 Razor 代码,因为它们直接作为静态文件提供,并且不由 ASP.NET 处理(*.ts 文件,因为它们在构建时被转译为 *.js)。

您可以做的就是在 View /页面中渲染 Razor 生成的 JavaScript,并让您的 TypeScript 或 JavaScript 期望该数据可用。

像这样:

索引.cshtml

<script type="text/javascript">
var scriptUrls = {
listDocuments: '@Url.Action("List", "Documents")';
};
</script>

Index.ts(如果使用 TypeScript)

interface PageUrls {
readonly listDocuments: string;
};

declare var scriptUrls: PageUrls;

//

$('#table').DataTable({
ajax: scriptUrls.listDocuments
});

索引.js

$('#table').DataTable({
ajax: scriptUrls.listDocuments
});

关于javascript - 从 javascript 调用 ASP.NET MVC 应用程序的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60692266/

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