我正在尝试List<string>
使用循环在我的 HTML 中显示 a 。我得到以下输出:
System.Collections.Generic.List`1[System.String]
我以前见过这个,但不是我目前编码的方式:我尝试了 2 个循环来显示其中的值,List<string>
但它们都返回相同的上述结果:
HTML
@{
Layout = "~/Administration/Views/Shared/_AdminLayout.cshtml";
}
@using Telerik.Web.Mvc.UI
@using Nop.Plugin.Misc.ExportAttributes.Models;
@model ImportCalculationSheetModel
@using Nop.Web.Framework;
@using (Html.BeginForm())
{
<ul>
@for (int i = 0; i < Model.FailedProductIdsList.Count; i++)
{
<li><b>@Convert.ToString(Model.FailedProductIdsList[i])</b></li>
}
</ul>
}
对于循环:
<ul>
@for (int i = 0; i < Model.FailedProductIdsList.Count; i++)
{
<li><b>@Convert.ToString(Model.FailedProductIdsList[i])</b></li>
}
</ul>
Foreach 循环:
<ul>
@foreach(var productId in Model.FailedProductIdsList)
{
<li><b>@Convert.ToString(productId);</b></li>
}
</ul>
List<string>
调试时,我看到在:中只插入了一个值,"99999"
因此甚至不需要转换为字符串,但我这样做只是为了确定,因为不转换时结果是相同的。
我正在使用的模型:在usingImportCalculationSheetModel
中引用View
@model ImportCalculationSheetModel
模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Nop.Web.Framework;
using Nop.Web.Framework.Mvc;
namespace Nop.Plugin.Misc.ExportAttributes.Models
{
public class ImportCalculationSheetModel : BaseNopModel
{
public List<string> FailedProductIdsList { get; set; }
}
}
所以我的模型只填充了 1 List<string>
,列表填充了我的Controller
.
控制器
[HttpGet]
public ActionResult ImportCalculationSheetSucceededWithFailures(ImportCalculationSheetModel model)
{
return View("Nop.Plugin.Misc.ExportAttributes.Views.MiscExportAttributes.ImportCalculationSheetSucceededWithFailures", model);
}
[HttpPost]
public ActionResult ImportCalculationSheet(ImportCalculationSheetModel model)
{
if (ModelState.IsValid)
{
ImportFromCalculationSheet _importFromCalculationSheet = new ImportFromCalculationSheet();
var file = Request.Files["importexcelfile"];
if (file != null && file.ContentLength > 0)
{
_importFromCalculationSheet.ImportProductsFromXlsx(file.InputStream);
model.FailedProductIdsList = _importFromCalculationSheet.FailedToUpdateIds;
}
else
{
return RedirectToAction("ImportCalculationSheet", model);
}
if (model.FailedProductIdsList.Count > 0)
{
return RedirectToAction("ImportCalculationSheetSucceededWithFailures", model);
}
else
{
return RedirectToAction("ImportCalculationSheetSucceeded", model);
}
}
else
{
return RedirectToAction("ImportCalculationSheet", model);
}
}
FailedProductIdsList
在以下行填充:
model.FailedProductIdsList = _importFromCalculationSheet.FailedToUpdateIds;
调试时,我可以看到它在那里没有失败。
问题
为什么 for 循环和 foreach 循环返回:
System.Collections.Generic.List`1[System.String]
当我一次只抓取一个项目List<string>
甚至将其转换为字符串时?有没有办法在视图中更好地调试这个问题?(视图中的断点未命中)