【问题标题】:Unterminated string constant Error when using innerHTML使用innerHTML时未终止的字符串常量错误
【发布时间】:2016-12-17 05:36:04
【问题描述】:

我正在尝试在完整的 razor 视图中设置 div 的 innerHTML,其中包含部分 razor 视图的内容:

@{
MvcHtmlString Bobo = @Html.Action("_TaskDetail_E", "ProTask");
};
detail_popup.innerHTML = @Bobo;

我在部分视图中尝试此代码,它给了我一个未终止的字符串常量错误:

 '<p>Task Name: @Html.DisplayFor(model => model.TaskName)</p>
 <p>Task Description: @Html.DisplayFor(model => model.TaskDesc)</p>'

当我在局部视图中使用以下代码时,它显示正常:

'<p>Task Name: @Html.DisplayFor(model => model.TaskName)</p>' +
'<p>Task Description: @Html.DisplayFor(model => model.TaskDesc)</p>'

如果我将所有代码放在一个单引号字符串的一行中,它也可以正常工作。我真正的部分观点是很多行,每行单引号并在每行末尾加上“+”非常难看。谁能告诉我这通常是怎么做的?

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    您可以使用string literal, as found at this answer。例如:

    @@"<p>Task Name: @Html.DisplayFor(model => model.TaskName)</p>
      <p>Task Description: @Html.DisplayFor(model => model.TaskDesc)</p>"
    

    【讨论】:

    • 我得到“System.Web.dll 中出现“System.Web.HttpException”类型的异常,但未在用户代码中处理“附加信息:执行处理程序 'System.Web 的子请求时出错.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'。内部异常是 "{"\"\"

      Task Name: @Html.DisplayFor(model => model.TaskName)

      \" is not valid at the start of a code block. 只有标识符,关键字, cmets, \"(\" 和 \"{\" 有效。\r\n"}"
    • 它的剃须刀。它需要两个@@
    • @RobertWells 我已经根据之前的评论更新了我的答案。
    • @"

      任务名称:提交建筑计划

      任务描述:将建筑计划提交有关部门审批

      "
    • 你好詹姆斯。当我使用 @@" 时收到以下错误消息:localhost:58251/ProNavView/ProNavFinalView\n\nSCRIPT1014 第 602 行第 1 列的 JavaScript 严重错误:无效字符 @"

      任务名称:提交建筑计划

      任务描述:向有关当局提交建筑计划以供批准

      “有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2011-04-27
    • 2011-07-24
    • 2018-09-16
    • 2012-08-21
    • 1970-01-01
    相关资源
    最近更新 更多