当前,我正在使用的现有代码
window['heatMapStartDate'] = "@Model.HeatMapStartDate.ToString("yyyy-MM-dd")
和
window['heatMapEndDate'] = "@Model.HeatMapEndDate.ToString("yyyy-MM-dd")
。
我想删除这些内容,因为我无法检查它们在打字稿文件上的引用。我正在寻找一种在.cs文件而不是.cshtml文件上使用它们的方法。任何建议将不胜感激。
home.ts
const myApp = new Vue({
el: '#dashboard',
data: {
heatMapStartDate: (window as any).heatMapStartDate as string,
heatMapEndDate: (window as any).heatMapEndDate as string,
},
methods: {
...
},
});
Index.cshtml
@page
@model JorgeApp.Pages.Dashboard.Home.IndexModel
<div id="dashboard">
...
</div>
<script>
window['heatMapStartDate'] = "@Model.HeatMapStartDate.ToString("yyyy-MM-dd")";
window['heatMapEndDate'] = "@Model.HeatMapEndDate.ToString("yyyy-MM-dd")";
</script>
Index.cshtml.cs
namespace JorgeApp.Pages.Dashboard.Home
{
public class IndexModel : Models.PageModels.DashboardModel
{
...
public DateTime HeatMapStartDate { get; set; }
public DateTime HeatMapEndDate { get; set; }
...
public ActionResult OnGet()
{
HeatMapEndDate = DateTime.UtcNow.Date.AddDays(-1);
HeatMapStartDate = HeatMapEndDate.AddDays(-7);
return Page();
}
}
}
答案 0 :(得分:1)
您可以尝试使用浏览器 localstorage 在特定域上全局存储数据,也可以使用浏览器 sessionstorage 在特定会话(浏览器标签会话)上全局存储数据。 / p>
localstorage['heatMapStartDate'] = "@Model.HeatMapStartDate.ToString("yyyy-MM-dd")";
OR
sessionStorage['heatMapStartDate'] = "@Model.HeatMapStartDate.ToString("yyyy-MM-dd")";
您可以通过以下方式访问这些数据;
data: { heatMapStartDate: localstorage['heatMapStartDate'] as string }
OR
data: { heatMapStartDate: sessionStorage['heatMapStartDate'] as string }
答案 1 :(得分:0)
您可以使用TypeScript声明文件(例如global.d.ts
)在窗口对象上声明其他属性:
declare global {
interface Window {
heatMapStartDate: string;
heatMapEndDate: string;
}
}
然后您可以像这样使用它们:
window.heatMapStartDate = "@Model.HeatMapStartDate.ToString("yyyy-MM-dd")";
window.heatMapStartDate = "@Model.HeatMapEndDate.ToString("yyyy-MM-dd")";