如何通过模型访问cshtml页面中的子列表

时间:2019-01-15 14:58:15

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

无法访问cshtml页面中的模型列表类型变量。 这是我的模特班

public class MBilling
{
    public List<string> plist { get; set; }
    public List<decimal> qlist { get; set; }
    public List<decimal> splist { get; set; }
}

控制器

public ActionResult Billing()
{
    if (Session["UserId"] != null)
    {
        MBilling binddata = BillingService.getBindData();
        return View(binddata);
    }
    else
    {
        return this.RedirectToAction("Index", "Login");
    }
}

这是cshtml部分

@model IEnumerable<Shop.Models.MBilling>
@{
    ViewBag.Title = "Billing";
}

<input style="border:none" list="browsers" name="browser">

<datalist id="browsers">
    ///Unable to ACCESS  Model.plist
    @foreach (var item in Model.plist)
    {
    }
</datalist>

我能够从cshtml页面中的服务文件BUT中获取带有所需数据的模型对象,该对象显示错误

  

CS1061:'IEnumerable<MBilling>'不包含'plist'的定义,并且找不到接受类型为'IEnumerable<MBilling>'的第一个参数的扩展方法'plist'您缺少using指令或程序集引用吗?)

谢谢。

1 个答案:

答案 0 :(得分:0)

问题:

您将模型作为MBilling类型的对象返回,但在视图中将其用作IEnumerable<MBilling>

解决方案:

您在这里不需要IEnumerable<T>,因为它不是可枚举的。因此,将其删除并执行以下操作即可:

@model Shop.Models.MBilling