我将选中的ListBox项值保存在逗号分隔的字符串中。
private string fabricString(IEnumerable<string> fabricsList)
{
string str = string.Join(",", fabricsList);
return str;
}
例如 str =&#34; 1,3&#34;
现在在编辑控制器中,我如何根据上面的字符串选择ListBox中的Text。
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
fad_Data fad_Data = db.fad_Data.Find(id);
fad_Data.sizeList = fad_Data.size.Split(',').ToList().Select(s => new SelectListItem() { Text = s, Value = s });
if (fad_Data == null)
{
return HttpNotFound();
}
return View(fad_Data);
}
使用上面的代码我得到错误
类型&#39; System.ArgumentNullException&#39;的例外情况发生在System.Web.Mvc.dll中但未在用户代码中处理 在线
fad_Data.sizeList = fad_Data.size.Split(&#39;,&#39;)。ToList()。选择(s =&gt; new SelectListItem(){Text = s,Value = s}); < / p>
如何做到。
答案 0 :(得分:0)
您可能正在尝试将IEnumerable
分配给导致List<T>
的{{1}}类型。
以下代码是一个更安全的版本。
ArgumentNullException
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
fad_Data fad_Data = db.fad_Data.Find(id);
fad_Data?.sizeList = fad_Data?.size?.Split(',').ToList().Select(s => new SelectListItem() { Text = s, Value = s }).ToList(); // You need to add ToList() at the end.
if (fad_Data.sizeList == null)
{
return HttpNotFound();
}
return View(fad_Data);
}
此条件访问可以转换为
var bar = foo?.buz();