2

已回答

Dbaseman 是正确的,但为了简化这一切,我不需要模式,我的代码现在看起来像这样:

[ChildActionOnly]
public ActionResult RecentNews()
{
    return PartialView(db.Articles.ToList());
}

@{Html.RenderAction("RecentNews");}

下面是我的旧代码,它不起作用

我无法让以下工作正常进行,我不确定我是否接近正确的轨道。如果我创建一个视图,代码一切正常,但如果我创建一个部分视图并将其添加到其他视图,则代码不会。无论我尝试什么,我似乎都得到了错误:对象引用未设置为对象的实例。

在我看来,我有:

@Html.Partial("RecentNews")

我的动作是这样的:

public ActionResult RecentNews()
{
    var rn = (from m in db.Articles
                select new RecentNews
                {
                    ArticleHeading = m.ArticleHeading
                });
    return View(rn);

    //return View(db.Articles.ToList());
}

我的模态:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace melbournesportsstadium.Models
{
    public class RecentNews
    {
        public string ArticleHeading { get; set; }
    }
}

还有我的RecentNews.cshtml:

@model List<melbournesportsstadium.Models.RecentNews>

<table>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.ArticleHeading)
        </td>
    </tr>
}

</table>

有人可以帮我解决这个问题吗?

4

1 回答 1

2

你得到“空引用”,因为局部视图没有接收任何模型;@Html.Partial 不返回控制器,它直接呈现视图。将其更改为 @Html.Action("RecentNews") 它应该可以工作。

于 2012-05-16T04:42:03.503 回答