我正在使用带有占位符标签([[tagname]])的文本编辑器编写文档创建器。我需要能够将 HTML 文本发送给阅读器,该阅读器将找到每个占位符并将其替换为 API 调用的响应文本。
我让阅读器服务接受 HTML 文本,并尝试拆分 (" ") 来分隔每个单词,通过 for 循环运行单词并调用 ("[[", "]] 上的 .Between 服务扩展方法") 来查找占位符。然后,我对其找到的占位符进行切换,并调用阅读器服务中的方法来进行 API 调用。问题是最终结果是一个空字符串。我不确定我错过了什么。
public string ReadForm(FormViewModel formModel)
{
var form = "";
var formText = formModel.FormText;
formText.Split(" ");
for (int i = 0; i < formText.Length; i++)
{
var formTextIndex = formText[i].ToString();
var formTagItem = formTextIndex.Between("[[", "]]");
if (formTagItem.ToString() != null)
{
switch (formTagItem)
{
case "placeholder1":
formTagItem = GetItems1(formModel.ID);
form += $"{formTagItem} ";
break;
case "placeholder2":
formTagItem = GetItems2(formModel.ID);
form += $"{formTagItem} ";
break;
case "placeholder3":
formTagItem = GetItems3(formModel.ID);
form += $"{formTagItem} ";
break;
case "placeholder4":
formTagItem = GetItems4(formModel.ID);
form += $"{formTagItem} ";
break;
default:
form += $"{formTagItem} ";
break;
}
}
else
{
form += $"{formText[i]} ";
}
}
return form;
}
我对表单的预期结果是占位符将替换为返回值,然后在 HTML 文本中替换。
米琪卡哇伊