[英].NET Core separating JavaScript from CSHTML and access ViewData
有没有办法从单独的JavaScript文件访问ViewData,就像可以从CSHTML上的嵌入式JavaScript代码访问ViewData一样?
我想分离我的JavaScript代码并直接将数据加载到我的JavaScript文件中,而不是在HTML中使用隐藏字段,然后通过GetElementById访问它,因为将数据从HTML传递到JavaScript然后再返回很麻烦再次转换为HTML。
@using StatisticOndoAppCore.Models.ViewModels;
@using { var info = (Shop)ViewData["ShopInfo"]; }
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中隐藏输入的值。
看到类似的堆栈溢出问题: 访问javascript文件中的Model属性?
更新 (以下代码可能有用,但未经测试)
@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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.