首页 > 解决方案 > 多个子字符串在 MVC Razor 视图中不起作用

问题描述

在下面的剃刀视图中 For Each 使用

 @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] vlaues20210225就像日期格式以字符串形式出现,从该值执行子字符串但不能为多个子字符串执行子字符串。

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

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

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

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

标签: c#asp.netasp.net-mvcrazor

解决方案


您正在使用该方法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)

其他电话也类似。


推荐阅读