【问题标题】:combine C# and javascript code结合 C# 和 javascript 代码
【发布时间】:2013-10-19 20:55:50
【问题描述】:

我在这样的 C# 代码中有一个 javascript 警报

if(Session["msg"] != null){
       string msg = (string)Session["msg"];
       if(msg.Length > 2) {
           @: var msg = @msg;
           @: alert(msg);
                               }

但在视图中没有出现警报:

问题是警报消息被写入视图。

为什么会这样?我该如何解决这个问题?

【问题讨论】:

  • 它正在做某种形式的转义。许多模板语言默认执行此操作。我对 C# 或 razor 框架一无所知,但可能值得研究 razor 文档......这里有很多答案可以解决这个问题 @Html.Raw() 或类似的东西。
  • 如果这个代码块放在
  • @user619656 可以多解释一下吗
  • 您可以在视图中看到消息,因为它在内部呈现为文本/作为 html。您希望 MVC 呈现的是: .

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


【解决方案1】:

您需要将注入的 Razor 字符串用引号括起来:

@: var msg = "@msg";

假设 "msg" 的内容是 "Something" ...那么,如果没有引号,渲染的脚本将如下所示:

var msg = Something

这将是无效的,因为没有名为“Something”的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 2020-07-14
    • 1970-01-01
    • 2017-12-11
    • 2013-10-03
    • 1970-01-01
    • 2011-09-18
    相关资源
    最近更新 更多