codemirror textarea MVC 5 中的换行符
Line breaks in codemirror textarea MVC 5
我有一个测试用户编码能力的应用程序。我用来捕获他们代码的文本区域是 codemirror 提供的。我有一个存储在我的数据库中的某些问题的代码模板。存储的 CodeTemplate 示例是:using System;\n\nnamespace Math\n{\n\tclass Math\n\t{\n\t\tstatic void Main(string[] args)\n\t\t{\n\t\t\t\n\t\t}\n\t}\n}
理论上应该打印出:
using System;
namespace Math
{
class Math
{
static void Main(string[] args)
{
}
}
}
这是它实际打印的内容:
using System;\n\nnamespace Math\n{\n\tclass Math\n\t{\n\t\tstatic void Main(string[] args)\n\t\t{\n\t\t\t\n\t\t}\n\t}\n}
==============================
这是我的控制器:
public ActionResult Evaluation()
{
EvaluationPackage tester = new EvaluationPackage();
Console.WriteLine("Testing Receiving Evaluation Package");
var result = EvaluationPackageService.GetQuestions(11);
// Put in question titles
ViewData["question1"] = result[0].Text;
ViewData["question2"] = result[1].Text;
ViewData["question3"] = result[2].Text;
// Put in code wrapper
ViewData["codeWrap1"] = result[0].TemplateCode;
ViewData["codeWrap2"] = result[1].TemplateCode;
return View();
}
==============================
这是我的观点的问题部分:
<div class="question-header">
<h2 class="problem-title">Question 1 - C# Coding</h2>
<button type="button" class="problem-status btn btn-outline btn-warning-outline answer-indicator">No answer yet</button>
</div>
<p class="question">@ViewData["question1"]</p>
<div class="question-response">
<form action="Test/Compile/" method="post">
<textarea id="cs-code" class="code-area">
@Html.Raw(@ViewData["codeWrap1"]) <!-- HERE IS THE PROBLEM -->
</textarea>
</div>
==============================
我已经尝试过使用 @Html.raw
并删除 @Html.raw
,我也尝试过用 <br>
替换 \n
,但可惜没有成功。
有什么建议吗?
数据库 INSERT 是:
using System;\n\nnamespace Math\n{\n\tclass Math // ETC
数据库 SELECT 是:
using System;\n\nnamespace Math\n{\n\tclass Math // ETC
它转义的是斜杠而不是 n。为了解决这个问题,INSERT 变为:
'using System;' + CHAR(13) + CHAR(13) + 'namespace Math' + CHAR(13) + '{' // ETC
CHAR(13)
对应 \n
,CHAR(9)
对应 \t
.
我有一个测试用户编码能力的应用程序。我用来捕获他们代码的文本区域是 codemirror 提供的。我有一个存储在我的数据库中的某些问题的代码模板。存储的 CodeTemplate 示例是:using System;\n\nnamespace Math\n{\n\tclass Math\n\t{\n\t\tstatic void Main(string[] args)\n\t\t{\n\t\t\t\n\t\t}\n\t}\n}
理论上应该打印出:
using System;
namespace Math
{
class Math
{
static void Main(string[] args)
{
}
}
}
这是它实际打印的内容:
using System;\n\nnamespace Math\n{\n\tclass Math\n\t{\n\t\tstatic void Main(string[] args)\n\t\t{\n\t\t\t\n\t\t}\n\t}\n}
==============================
这是我的控制器:
public ActionResult Evaluation()
{
EvaluationPackage tester = new EvaluationPackage();
Console.WriteLine("Testing Receiving Evaluation Package");
var result = EvaluationPackageService.GetQuestions(11);
// Put in question titles
ViewData["question1"] = result[0].Text;
ViewData["question2"] = result[1].Text;
ViewData["question3"] = result[2].Text;
// Put in code wrapper
ViewData["codeWrap1"] = result[0].TemplateCode;
ViewData["codeWrap2"] = result[1].TemplateCode;
return View();
}
==============================
这是我的观点的问题部分:
<div class="question-header">
<h2 class="problem-title">Question 1 - C# Coding</h2>
<button type="button" class="problem-status btn btn-outline btn-warning-outline answer-indicator">No answer yet</button>
</div>
<p class="question">@ViewData["question1"]</p>
<div class="question-response">
<form action="Test/Compile/" method="post">
<textarea id="cs-code" class="code-area">
@Html.Raw(@ViewData["codeWrap1"]) <!-- HERE IS THE PROBLEM -->
</textarea>
</div>
==============================
我已经尝试过使用 @Html.raw
并删除 @Html.raw
,我也尝试过用 <br>
替换 \n
,但可惜没有成功。
有什么建议吗?
数据库 INSERT 是:
using System;\n\nnamespace Math\n{\n\tclass Math // ETC
数据库 SELECT 是:
using System;\n\nnamespace Math\n{\n\tclass Math // ETC
它转义的是斜杠而不是 n。为了解决这个问题,INSERT 变为:
'using System;' + CHAR(13) + CHAR(13) + 'namespace Math' + CHAR(13) + '{' // ETC
CHAR(13)
对应 \n
,CHAR(9)
对应 \t
.