gpt4 book ai didi

javascript - 将 MVC ViewModel 转换为外部 .js 文件中的 Javascript 对象

转载 作者:行者123 更新时间:2023-11-29 19:14:28 25 4
gpt4 key购买 nike

作为 this question 的推论,我知道可以使用 var jsObject = @Html.Raw(Json.Encode(Model)) 等技术将 MVC ViewModel 对象转换为 Javascript。

我假设只能在实际的 .cshtml 页面上直接使用此技术。如果我想在外部 .js 文件中使用这些数据怎么办?

如果我在 .cshtml 页面上实例化了 var jsObject,我是否仍然可以从外部 Javascript 文件访问这个对象,或者它会被认为是外部的-范围?

最佳答案

您可以从您的 javascript 文件中访问生成的 jsObject。为了使其不超出范围,您需要将其视为全局对象:

在你的“.cshtml”中:

var jsObject = @Html.Raw(Json.Encode(Model))
<script src="/path/to/jsFile.js">

在你的 jsFile.js

if(jsObject)
{
// do whatever you need
}

请注意,由于您没有将变量传递给 jsFile.js 中的方法,因此 jsFile.js 访问它的唯一方法是了解什么您在 .cshtml 中为其指定的名称。这会使您的代码非常脆弱。另一种更好的方法是将变量传递给 JavaScript 函数。

在你的 .cshtml 中:

<script src="/path/to/jsFile.js">

var jsObject = @Html.Raw(Json.Encode(Model))
myProcessor(jsObject)

使用这种方法,myProcessor 方法不关心变量的名称是什么。

关于javascript - 将 MVC ViewModel 转换为外部 .js 文件中的 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430837/

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