【问题标题】:Wrap each newline (/n) with <li> </li>用 <li> </li> 包裹每个换行符 (/n)
【发布时间】:2015-01-31 22:04:16
【问题描述】:

我有一个小项目,我有一个问题。用户填写表格并提交后,我希望在 textarea 中用&lt;li&gt;&lt;/li&gt; 换行。

所以基本上我有以下代码。

<textarea name="Questions"></textarea>

在另一个 submit.cshtml 中,我希望在发送电子邮件之前用&lt;li&gt;&lt;/li&gt; 包装每个换行符。所以电子邮件将包含以下内容

  • 问题 1
  • 问题 2
  • 问题 3
  • 问题 4

文本区域中的信息存储在一个名为Questions 的变量中 我希望将每个新行的变量分解为 &lt;li&gt;&lt;/li&gt; 并将新值存储在名为 EmailBody 的第二个变量中,以包含在电子邮件中。

我知道如何在 PhP 中做到这一点,但在 Razor 视图引擎中我有点不知所措。 提前致谢!

更新 通过修改 Aron 的代码来解决它。

    foreach (var line in Questions.Split('\n'))
    {
        EmailBody = EmailBody + "<li>" + @line + "</li>";
    }  

【问题讨论】:

  • 什么意思?将EmailBody 包含在电子邮件中是什么意思?似乎您正在以非标准方式使用 Razor(您不是在编写 MVC 视图)。我认为您需要使用sscce 进行扩展。
  • 正确,我没有为这个项目使用 MVC 视图。主要是因为该站点只包含几个 .cshtml 页面。一个您可以发送问题的地方。 Questions.cshtml 该页面的表单包含 submit.cshtml 有一个看起来像这样的变量 var Questions = Request["Questions"];我希望将每个新行拆分为问题变量
  • 并将新值存储在一个名为 EmailBody 的变量中,该变量将在发送电子邮件时包含在电子邮件助手中。我只寻找拆分问题 /n 并将
  • 存储在 EmailBody 中。
  • 你根本没有任何意义。你是什​​么意思存储在 EmailBody 中。你没有道理。 Razor 是一个视图引擎。您想在 C# 行中编写吗?如果是这样......请不要。 Razor 是一个视图引擎。您正在考虑逻辑,它可能会起作用……但是就像在电视内安装汽油发电机一样。同样可能会触电你......
  • 通过修改你的代码来解决这个问题。感谢您的帮助
  • 标签: razor razor-2


    【解决方案1】:
    @foreach(var line in Model.Text.Split(Environment.NewLine)){
        <li>@line</li>
    }
    

    【讨论】:

    • 我似乎无法让它工作,在 Model.Text.Split 上搜索了参考资料,但没有找到阅读它的参考资料?这是我现在拥有的代码。 ` foreach (Model.Text.Split(Environment.NewLine) 中的var line) { EmailBody = EmailBody + "
    • " + @line + "
    • "; } ` 我希望将变量 Questions 拆分为每个新行上的&lt;li&gt;,将它们添加到一个变量中,该变量将成为发送电子邮件的电子邮件正文的一部分。
  • 我不知道您将Text 变量存储在哪里,所以我假设您有一个Model,其属性为Text。如果你不发帖,我到底是怎么想知道你的班级结构的。我以为你会接受我的代码并弄清楚它的含义,然后根据自己的需要进行调整......
  • 对不起,如果我的解释不够充分,我更新了我的主要问题,提供了有关我正在寻找的东西的更多信息。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签