javascript - 将 Razor 字符串变量转换为 MVC 中的 Javascript 字符串变量

标签 javascript c# asp.net-mvc asp.net-mvc-4 razor

我试图将我的 cshtml View 上的字符串变量(甚至是 bool 值)传递到我的 javascript 部分。如果它是整数,我可以成功地将 Razor 部分的值传递给 javascript。但我想要完成的是传递字符串值。这是我的 .cshtml 中的示例代码:

string strAnnouncement = "My announcement";
int intCounterValue = 1200;

要在 Javascript 上接收值,这是我的代码:

//Cannot get the value, always error on Developer Tool console
var SessAnnouncement = @strAnnouncement;

//Can get the value successfully
var SessInitTimer = @intCounterValue;

如您所见,我可以通过 SessInitTimer 上的 javascript 获取值 1200。但是在 SessAnnouncement 上,我收到一个Uncaught ReferenceError: My announcement is not defined。

如何在我的 razor 部分获取 strAnnouncement 值并将其传递到脚本部分?

最佳答案

它们被视为变量,并且由于您尚未定义它们,所以会出现上述错误。

您需要用引号引起来才能被视为字符串。

var SessAnnouncement = "@strAnnouncement";

更好的方法是使用 JSON.Encode() 方法

var SessAnnouncement = @Html.Raw(Json.Encode(strAnnouncement));

关于javascript - 将 Razor 字符串变量转换为 MVC 中的 Javascript 字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126127/

相关文章:

c# - 您可以命名 Func<T> 类型的参数吗?

asp.net - 发布到 Azure 网站后无法加载文件或程序集 System.Web.Http.WebHost

asp.net-mvc - MVC Razor @foreach

asp.net-mvc - LINQ to EF 有什么问题?

javascript - 为什么对同一个函数的两个绑定(bind)返回不同的值

预期的 JavaScript 表达式

javascript - 使用 -H 将 Curl 转换为 Javascript

javascript - 使用 SSO 在两个 Node 应用程序之间共享 session

c# - 如何通过单击链接滚动到页面中的某个位置

c# - 从文件中加载 xml