【问题标题】:Pass value from c# to cshtml to TypeScript将值从 c# 传递到 cshtml 到 TypeScript
【发布时间】:2018-04-24 15:44:25
【问题描述】:

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

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

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

var temp = ViewData["temp"];

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

您能建议一些正确的方法吗?

【问题讨论】:

    标签: asp.net-mvc typescript razor


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 即使我这样做了,数据临时值在页面的 DOM 树中也是可见的。有什么方法可以让我们从 DOM 树中隐藏它?
    • 没有。如果您需要从 Razor 页面访问您的 typescript/javascript 文件中的数据,您必须将其放入 DOM 文件中。 Typescript/javascript 文件然后检查 DOM 并获取数据。这是一个很好的做法。
    【解决方案2】:

    您可以将它作为字符串变量传递给 html,例如。

    let typeScriptVariable: string = "@temp";
    

    【讨论】:

      猜你喜欢
      • 2019-11-24
      • 2015-09-19
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2023-03-11
      • 2021-08-21
      相关资源
      最近更新 更多