如何解决如何在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 举报,一经查实,本站将立刻删除。