首页 > 解决方案 > 如何在 MVC 中写入浏览器控制台?

问题描述

我正在尝试让下面的课程正常工作,但是我继续收到一条错误消息,说明

alert!parsererrorSyntaxError: 意外的标记<在 JSON 中的位置 0/Home/onPremTest{"msg":"onPremTest message"}

似乎脚本结束标记中的开始符号导致了此消息。有谁知道如何格式化它以便浏览器接受 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), message);
    Page page = HttpContext.Current.Handler as Page;
    if (ScriptManager.GetCurrent(page).IsInAsyncPostBack) {
      ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "alert", "alert('" + message + "')", true);
    } else {
      HttpContext.Current.Response.Write(log);
    }
  }

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

标签: javascriptc#htmlasp.net-mvc

解决方案


该错误意味着您的一个开始标签存在问题。也可能是别的东西,但这是我迄今为止所经历的。

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

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

推荐阅读