我有一个测试用户编码能力的应用程序。我用来捕获代码的textarea是通过codemirror。我有一个CodeTemplate用于存储在我的数据库中的某些问题。存储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
,我尝试将\n
替换为<br>
,但是没有运气。
有什么建议吗?
答案 0 :(得分:0)
数据库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
。