从包含 c# 变量的文件执行 JS 脚本
Exectuing JS script from file containing c# variables
我正在使用 CefSharp 创建一个软件,需要执行一些 JS 代码。我现在做的是只用一行写脚本,但是不方便,而且很难应用修改。
这是我尝试执行的文件中的 JS 脚本:
console.log(size) //size.Text is the variable defined in C#
但是由于 size
变量是在 c# 中定义的,所以我得到的输出是 undefined
.
这是我用来加载文件的代码:
string size = "XL";
string testJs = Path.Combine(Environment.CurrentDirectory, @"Data\", "test.js");
string test = File.ReadAllText(testJs);
browser.ExecuteScriptAsyncWhenPageLoaded(test);
还有一个可行的(单行的):
browser.ExecuteScriptAsyncWhenPageLoaded("console.log(" + size + ");")
所以主要问题是将变量传递给 XL
作为浏览器控制台的输出。
您要将视图模型传递给 Razor 模板吗?如果是这样,您可以在脚本标签中使用剃刀语法:
<script>
console.log(@Model.size);
</script>
考虑到size
是从C#代码传递过来的,js文件中需要的是一个占位符,以后可以替换。
一个可能的解决方案可能是 -
JS 文件
console.log('@{SIZE}@');// you can use any formatting for your placeholder
C#代码
string size = "XL";
string testJs = Path.Combine(Environment.CurrentDirectory, @"Data\", "test.js");
string test = File.ReadAllText(testJs).Replace("@{SIZE}@", size);
browser.ExecuteScriptAsyncWhenPageLoaded(test);
这种方法将允许您在 js 文件中使用任意数量的占位符以及任意数量的位置。
我正在使用 CefSharp 创建一个软件,需要执行一些 JS 代码。我现在做的是只用一行写脚本,但是不方便,而且很难应用修改。
这是我尝试执行的文件中的 JS 脚本:
console.log(size) //size.Text is the variable defined in C#
但是由于 size
变量是在 c# 中定义的,所以我得到的输出是 undefined
.
这是我用来加载文件的代码:
string size = "XL";
string testJs = Path.Combine(Environment.CurrentDirectory, @"Data\", "test.js");
string test = File.ReadAllText(testJs);
browser.ExecuteScriptAsyncWhenPageLoaded(test);
还有一个可行的(单行的):
browser.ExecuteScriptAsyncWhenPageLoaded("console.log(" + size + ");")
所以主要问题是将变量传递给 XL
作为浏览器控制台的输出。
您要将视图模型传递给 Razor 模板吗?如果是这样,您可以在脚本标签中使用剃刀语法:
<script>
console.log(@Model.size);
</script>
考虑到size
是从C#代码传递过来的,js文件中需要的是一个占位符,以后可以替换。
一个可能的解决方案可能是 -
JS 文件
console.log('@{SIZE}@');// you can use any formatting for your placeholder
C#代码
string size = "XL";
string testJs = Path.Combine(Environment.CurrentDirectory, @"Data\", "test.js");
string test = File.ReadAllText(testJs).Replace("@{SIZE}@", size);
browser.ExecuteScriptAsyncWhenPageLoaded(test);
这种方法将允许您在 js 文件中使用任意数量的占位符以及任意数量的位置。