gpt4 book ai didi

javascript - .NET Core 将 JavaScript 与 CSHTML 分离并访问 ViewData

转载 作者:行者123 更新时间:2023-12-03 06:22:00 24 4
gpt4 key购买 nike

有没有一种方法可以从单独的 JavaScript 文件访问 ViewData,就像从 CSHTML 上的嵌入式 JavaScript 代码访问它一样?

我想分离我的 JavaScript 代码,并将数据直接加载到我的 JavaScript 文件中,而不是在 HTML 中使用隐藏字段,然后通过 GetElementById 访问拉取它,因为将数据从 HTML 传递到 JavaScript 似乎很乏味然后再次返回 HTML。

CSHTML 文件

@using StatisticOndoAppCore.Models.ViewModels;
@using { var info = (Shop)ViewData["ShopInfo"]; }

嵌入 JavaScript 代码

subscriptionShopData = [
{ y: 'Uge ' + @info.currentWeek, a: @info.creationsCurrentWeek },
{ y: 'Uge ' + @info.currentWeek - 1, a: @info.creationsLastWeek },
{ y: 'Uge ' + @info.currentWeek - 2, a: @info.creationsCurrentWeekMinusTwo },
{ y: 'Uge ' + @info.currentWeek - 3, a: @info.creationsCurrentWeekMinusThree }
];

new Morris.Bar({
element: 'bar-subscriptions-shop',
data: subscriptionShopData,
...

最佳答案

您无法访问 JavaScript 文件中的 ViewData,因为 JavaScript 文件是静态文件。但是您可以使用隐藏输入(或数据属性)并使用 ViewData 设置值。然后它使您能够访问 JavaScript 中隐藏输入的值。

查看类似的堆栈溢出问题: Access a Model property in a javascript file?

更新(以下代码可能有用,但未经测试)

@section scripts
{
<script>
$(function(){
var subscriptionShopData = [
{ y: 'Uge ' + @info.currentWeek, a: @info.creationsCurrentWeek },
{ y: 'Uge ' + @info.currentWeek - 1, a: @info.creationsLastWeek },
{ y: 'Uge ' + @info.currentWeek - 2, a: @info.creationsCurrentWeekMinusTwo },
{ y: 'Uge ' + @info.currentWeek - 3, a: @info.creationsCurrentWeekMinusThree }
];
});
</script>
<script src="..."></script>// use subscriptionShopData variable in this js
}

关于javascript - .NET Core 将 JavaScript 与 CSHTML 分离并访问 ViewData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38826008/

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