微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在MVC中写入浏览器控制台?

如何解决如何在MVC中写入浏览器控制台?

我正在尝试使下面的类正常工作,但是我仍然收到一条错误消息,指出

alert!parsererrorSyntaxError:JSON中位置0 / Home / onPremTest {“ msg”:“ onPremTest消息”}}上的意外令牌

似乎在脚本结束标记中的开始符号导致了此消息。有谁知道如何格式化它,以便浏览器接受JavaScript代码并执行它?

public class Javascript {
  static string scriptTag = "<script type=\"\" language=\"\">{0}</script>";
  public static void ConsoleLog(string message) {
    string function = "console.log('{0}');";
    string log = string.Format(GenerateCodeFromFunction(function),message);
    //System.Web.HttpContext.Current.Response.Write("<script>alert('Test message !'); </script>");
    System.Web.HttpContext.Current.Response.Write(log);    
  }

  public static void ConsoleError(string message) {
    string function = "console.error('{0}');";
    string log = string.Format(GenerateCodeFromFunction(function),message);
    Page page = HttpContext.Current.Handler as Page;
    if (ScriptManager.GetCurrent(page).IsInAsyncPostBack) {
      ScriptManager.RegisterClientScriptBlock(page,page.GetType(),"error","console.error('" + message + "')",true);
    } else {
      HttpContext.Current.Response.Write(log);
    }
  }

  public static void Alert(string message) {
    string function = "alert('{0}');";
    string log = string.Format(GenerateCodeFromFunction(function),"alert","alert('" + message + "')",true);
    } else {
      HttpContext.Current.Response.Write(log);
    }
  }

  static string GenerateCodeFromFunction(string function) {
    return string.Format(scriptTag,function);
  }
}

解决方法

该错误表示您的一个开始标签存在问题。可能也有其他事情,但这是我到目前为止所经历的。

// this create that error.
<div something </div>

// so add ">" after div
<div> something </div>
,

function中的GenerateCodeFromFunction应该对字符串使用'"(首选")。所以我稍微改变了您所有的方法:

 public class Javascript
    {
        static string scriptTag = "<script type='javascript' >{0}</script>";
        public static void ConsoleLog(string message)
        {
            string function = "console.log(\"{0}\");";
            string log = string.Format(GenerateCodeFromFunction(function),message);
          
            System.Web.HttpContext.Current.Response.Write(log);
        }

        public static void ConsoleError(string message)
        {
            string function = "console.error(\"{0}\");";
            string log = string.Format(GenerateCodeFromFunction(function),message);
            Page page = HttpContext.Current.Handler as Page;
            if (ScriptManager.GetCurrent(page).IsInAsyncPostBack)
            {
                ScriptManager.RegisterClientScriptBlock(page,page.GetType(),"error","console.error('" + message + "')",true);
            }
            else
            {
                HttpContext.Current.Response.Write(log);
            }
        }

        public static void Alert(string message)
        {
            string function = "alert(\"{0}\");";
            string log = string.Format(GenerateCodeFromFunction(function),"alert","alert('" + message + "')",true);
            }
            else
            {
                HttpContext.Current.Response.Write(log);
            }
        }

        static string GenerateCodeFromFunction(string function)
        {
            return string.Format(scriptTag,function.Replace("\"","'"));
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。