首页 > 解决方案 > 将值从 c# 传递到 cshtml 到 TypeScript

问题描述

我有一个项目,我通过以下方式将数据从 C# 传递到 cshtml:

public IActionResult Index()
    {
        ViewData["temp"] = "abc"
        return View();
    }

然后在 cshtml 文件中接收该值,我可以将其读取为

var temp = ViewData["temp"];

我有一个打字稿文件,然后从这个 cshtml 文件启动。我的问题是,如何在我的打字稿代码中使用这个临时变量。我不想为这个临时数据创建一个“div”元素,然后在打字稿中读取它的值,因为从安全角度来看,这不是一件干净的事情。

你能建议一些方法以正确的方式做到这一点吗?

标签: asp.net-mvctypescriptrazor

解决方案


在您的Index操作返回的视图中,只需选择一个现有元素(body如果您的视图包含它,您可以选择该元素)并在该元素中添加一个data-*属性(您可以命名它data-temp),如下所示:

<SomeElementInMyView data-temp="@temp">...</SomeElementInMyView>

在您的 Typescript 文件中,我想您正在使用 jQuery,因此获取如下数据值:

let dataTemp = $("SomeElementInMyView").data("temp");

推荐阅读