【问题标题】:Adding String to List MVC将字符串添加到列表 MVC
【发布时间】:2018-08-12 17:39:38
【问题描述】:

我正在使用 MVC4 Razor,我只想问一下如何创建一个字符串列表并在逗号分隔的字段中使用它?因为我尝试了一些东西,但它显示错误 Cannon implicitly convert type void to object 我会告诉你我的代码集

在我的标题上声明了这一点:

 List<string> elements = new List<string>();

然后我希望这个 List&lt;string&gt; elements 填充到 foreach 循环中

    <tbody>
            @for (var i = 0; i < Model.Cards.Count; ++i)
                 {
                    var counter = i + 1;
                    <tr>    
                        <td valign="middle"> 
                            <p class="small">@counter</p>
                        </td>
                        <td valign="middle">                         
                             <p class="small">@Model.Cards[i].Number.Substring(0,5)</p>
                        </td>
                        @elements.Add(Model.Cards[i].Number.Substring(0,5))
                   </tr>
                 }
    </tbody>

并在标签中使用它

<div> Card Number <p> @String.Join(", ", elements.ToArray()) </p></div>

【问题讨论】:

  • 该代码属于控制器,而不是视图(并且您传递了一个视图模型,其中包含您要在标签中使用的结果的 string 属性)
  • @StephenMuecke 先生,您能建议我在视图中使用什么
  • @StephenMuecke 我已经在这个代码语句上停留了 3 个小时
  • 您视图中的代码将只是@for (var i = 0; i &lt; Model.Cards.Count; ++i) { .... &lt;p&gt;@Model.Cards[i].Number&lt;/p&gt; },因为Number 的值将只有您想要的5 个字符。您将使用Card Number &lt;p&gt;Model.CardNumber&lt;/p&gt;,其中CardNumber 是连接结果(再次在控制器中计算,而不是在视图中计算)

标签: html asp.net-mvc linq asp.net-mvc-4 razor


【解决方案1】:

如果您喜欢 @Stephen Muecke,建议最好。但是,如果您流程化您的流程,您的代码将如下所示:

@{
    List<string> elements = new List<string>();
 }

     <tbody>
            @for (var i = 0; i < Model.Cards.Count; ++i)
                 {
                    var counter = i + 1;
                    var cardNumber=Model.Cards[i].Number.Substring(0,5);
                    elements.Add(cardNumber);
                    <tr>    
                        <td valign="middle"> 
                            <p class="small">@counter</p>
                        </td>
                        <td valign="middle">                         
                             <p class="small">@cardNumber</p>
                        </td>                    
                   </tr>

                 }
    </tbody>
@{
    var str=string.Join(", ", elements.ToArray());
}

<div> Card Number <p> @str </p></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2011-09-10
    • 2014-07-05
    • 2022-07-28
    • 2011-12-15
    • 2023-02-15
    • 2015-07-31
    相关资源
    最近更新 更多