【问题标题】:How to pass IEnumerable<T> to View如何将 IEnumerable<T> 传递给 View
【发布时间】:2015-03-19 22:04:46
【问题描述】:

你好,我是 MVC 的新手, 我想在视图中显示 webgrid,我正在尝试在同一页面中显示创建和显示,在 webgrid 中显示数据时遇到问题,

这是我的代码: 控制器:

[HttpPost]
    public ActionResult Insert(Torder Model)
    {
        if(ModelState.IsValid)
        {
            try
            {
                ntity.Torders.Add(Model);
                ntity.SaveChanges();
                ModelState.Clear();
                TempData["notice"] = "Successfully registered";
            }
            catch(Exception ex)
            {
                TempData["Failure"] = ex;
            }
        }
        else
        {
            TempData["Failure"] = "Record Not Saved";
        }

        //var empoyees = Employee.GetList();

        IEnumerable<Torder> model1 = GetProducts();
        return View(model1);
    }
    public IEnumerable<Torder> GetProducts()
    {
        List<Torder> objStudent = new List<Torder>();
        ///*Create instance of entity model*/

        /*Getting data from database for user validation*/
        var _objuserdetail = (from data in ntity.Torders
                              select data);
        foreach (var item in _objuserdetail)
        {
            objStudent.Add(new Torder { Cid = item.Cid, Ccustomername = item.Ccustomername, Citem = item.Citem, Corderamount = (int)item.Corderamount});
        }
        return objStudent;
    }

【问题讨论】:

  • 什么问题?你有什么例外吗?要具体。
  • @saikrishnareddy,使用附加代码编辑您的问题(并删除您的评论)
  • 我想在视图中显示 sql 表数据(在 Web 网格中使用 List),我需要帮助..
  • 什么是“网络网格”?
  • 我们可以定义 WebGrid 以使用 HTML 表格元素在网页上显示数据。它以非常简单的方式呈现表格数据

标签: c# asp.net asp.net-mvc html-helper webgrid


【解决方案1】:

只需传递你的IEnumerable&lt;Torder&gt; 就像List&lt;Torder&gt; 在页面上你可以写foreach loop 并创建网格

--- Example:
public class Torder
{
   public int Id {get;set;}
   public string Name {get;set;}
}

[HttpPost]
    public ActionResult Insert(Torder Model)
    {
        if(ModelState.IsValid)
        {
            try
            {
                ntity.Torders.Add(Model);
                ntity.SaveChanges();
                ModelState.Clear();
                TempData["notice"] = "Successfully registered";
            }
            catch(Exception ex)
            {
                TempData["Failure"] = ex;
            }
        }
        else
        {
            TempData["Failure"] = "Record Not Saved";
        }

        //var empoyees = Employee.GetList();

        List<Torder> model1 = GetProducts();

        return View(model1);
    }
    public List<Torder> GetProducts()
    {
        List<Torder> objStudent = new List<Torder>();
        // your logic
        return objStudent;
    }

---------
Page:
-------------
//html code
@model  List<Torder>
@foreach(Torder order in Model)
{
// here you can build you grid(table) 
order.Name
order.Id
}

P.S 以后我建议写“干净”UI 不带Razor(尝试学习Angular - 真的非常好framework)–

【讨论】:

    【解决方案2】:

    很难从 cmets 中的代码中分辨出来,但您可能只是错过了 @grid.GetHtml() 您显示的块定义了网格,但现在您需要发出 HTML 以便在页面上显示一些内容。将其放在您的 @{} 块之后,紧邻 div 结束标记之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-22
      • 2020-06-16
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2012-12-18
      相关资源
      最近更新 更多