【问题标题】:Multiple Substring is not working in MVC Razor view多个子字符串在 MVC Razor 视图中不起作用
【发布时间】:2021-08-13 04:28:14
【问题描述】:

在下面的剃刀视图中为每个使用

 @foreach (var i in (List<MyDME.Data.Model.ERNFileRequestDTO>)ViewBag.lst)
                    {
                        for (int j = 0; j < i.Parse835Details.storedChkNo.Count; j++)
                        {

                            <tr>
                                <td>
                                    @i.Parse835Details.storedPayorName[j]
                                </td>
                                <td>
                                    @i.Parse835Details.storedChkNo[j]
                                </td>
                                <td>
                                    @i.Parse835Details.storedTotalBilled[j]

                                </td>
                                <td>
                                    @i.Parse835Details.storedTotalPaid[j]

                                </td>
                                <td>
                              //below line doing substring which is not working
   @(i.Parse835Details.storedChkDate[j].Substring(4, 5) + " " + i.Parse835Details.storedChkDate[j].Substring(6, 7) + " " + i.Parse835Details.storedChkDate[j].Substring(0, 3))
                                   
                                </td>
                                <td>
                                    <a href='/PatientManagement/DownloadUploadedDocument?fileName=@Html.Raw(i.path)'>Download</a>

                                </td>
                            </tr>

出现以下错误

System.ArgumentOutOfRangeException: 'Index and length must refer to a location within the string. Parameter name: length'

IF i.Parse835Details.storedChkDate[j] vlaues 是 20210225 就像日期格式是在字符串中,从这个值做子字符串但不能为多个子字符串做子字符串。

如果我使用低于单个范围,那么它的工作原理

@i.Parse835Details.storedChkDate[j].Substring(0, 5)

如果我使用低于单个范围,那么它不起作用

@i.Parse835Details.storedChkDate[j].Substring(4, 5)

【问题讨论】:

  • 你能显示你的storedChkNo和storedChkDate类吗?

标签: c# asp.net asp.net-mvc razor


【解决方案1】:

您正在使用方法public string Substring (int startIndex, int length)
但是您似乎认为它是public string Substring (int startIndex, int endIndex)

提取字符4+5,需要将length作为2传递,如下:

@i.Parse835Details.storedChkDate[j].Substring(4, 2)

其他调用也类似。

【讨论】:

  • @(i.Parse835Details.storedChkDate[j].Substring(4, 5) + " " + i.Parse835Details.storedChkDate[j].Substring(6, 7) + " " + i. Parse835Details.storedChkDate[j].Substring(0, 3)) 如何实现上述行。 @彼得B
  • 我还是不明白。 @彼得B
  • 我会说我展示了你需要对第一个电话做什么,然后是“其他电话也类似”。有什么不清楚的地方?如果要提取 2 个字符,请使用 2,如果要提取 4 个字符,请使用 4。请参阅我发布的链接(第一个内联代码块)。
  • 我同意@Peter B,解释很清楚。我建议阅读 Substring 的工作原理会有所帮助-这可能对您有所帮助吗? c-sharpcorner.com/UploadFile/mahesh/substring-in-C-Sharp
  • 你是我的超级英雄,我已经尝试了 6 个小时。 @彼得B
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 2014-09-20
  • 2017-06-25
相关资源
最近更新 更多