数据库从控制器到视图

时间:2014-09-17 01:05:19

标签: asp.net-mvc razor

好吧,我之前已经完成了这个代码并且它已经运行了,但是这次它不会工作,请在这里帮助我。我已经在网上搜索了几个小时并测试了很多选项,无法使其正常运行。正如您可能已经猜到的那样,我只希望将我的数据库(用ssms编写)中的所有内容传递给视图,而不会出现错误。我收到很多不同的错误,最新的错误是:

传递到字典中的模型项的类型为System.Collections.Generic.List 1[System.String]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable 1 [FE.Blog]'。

控制器:

    public ActionResult Contact()
    {

        var q = from p in dbBlog.Blog
                select p.Description;
        return View(q.ToList());
    }

观点:

    @model IEnumerable<FE.Blog>

        @foreach (var item in Model)
        {
            @item.Description
        }

2 个答案:

答案 0 :(得分:0)

您只选择了一列p.Description string,但您的视图预计模型为IEnumerable<FE.Blog>

如果只需要列,请在视图中更改模型:

 @model List<string>

 @foreach (var item in Model)
 {
   @item
 }

或者如果您希望视图与IEnumerable<FE.Blog>绑定,那么您必须查询对象而不是仅选择一个属性:

public ActionResult Contact()
{
   var q = from p in dbBlog.Blog
           select p;
   return View(q.ToList());
 }

并在视图中:

@model IEnumerable<FE.Blog>

@foreach (var item in Model)
{
   @item.Description
}

答案 1 :(得分:0)

我刚刚解决了我的问题,我认为它看起来如此。

问题是我在另一个视图中忘记了另一个表单 using-statement 上面的&#34; @model FE.Blog&#34; 。整个地方都有局部视图,这解释了我一直在收集的错误。

此致