【问题标题】:Entity Framework Returns No Value With MVC Action实体框架通过 MVC 操作不返回任何值
【发布时间】:2016-07-07 16:23:45
【问题描述】:

我遇到了实体框架的问题,并且 MVC ActionResult 返回部分视图。 我创建了非常示例代码来从数据库中检索数据到部分视图操作,并将数据插入到部分视图作为普通数据模型。 但是当我使用相同的代码来检索数据时,它不起作用并返回空模型,当我将它与返回正常 View 的正常 ActionResult 一起使用时,它就可以工作了。

这是部分视图操作:

public ActionResult PaperSpecification()
{
    var _sheets = _entity.Sheets.ToList();

    return PartialView("_SheetSpecificationPartial", _sheets);
}

_entity 变量在控制器类中定义为私有。

我以前的想法相同,但在索引操作中

public ActionResult Index()
{
    var _sheets = _entity.Sheets.ToList();

    return View(_sheets);
}

这是索引视图:

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@model IEnumerable<PrintManager.Models.Db.Sheet>
<h2>Index</h2>

@{
    Html.RenderAction("PaperSpecification", "WorkOrder");
}

<ul>
    @foreach (var item in Model)
    {
        <li>@item.SheetName</li>
    }
</ul>

最后这是部分视图:

<div class="panel panel-primary">
    <div class="panel-heading">
        <h3 class="panel-title">Paper Specification</h3>
    </div>
    <div class="panel-body">
        <div class="row">
            <div class="col-md-3">
                <div class="form-group">
                    <label>Paper Specification</label>
                    <select class="form-control">
                        @if (ViewBag.sheets_L != null)
                        {
                            foreach (var item in Model)
                            {
                                <option>@item.SheetName</option>
                            }
                        }
                    </select>
                </div>
            </div>
            <div class="col-md-3"></div>
            <div class="col-md-3"></div>
            <div class="col-md-3"></div>
        </div>
    </div>
</div>

我认为这不是实体问题,而是部分视图问题。

【问题讨论】:

  • 您是否在var _sheets = _entity.Sheets.ToList(); 设置了断点并检查它是否包含任何数据?
  • 您根本不需要 PaperSpecification 操作。将您的部分视图放在索引视图中

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


【解决方案1】:

按照 Pavel 在 cmets 中的建议替换:

@{
    Html.RenderAction("PaperSpecification", "WorkOrder");
}

@Html.Partial("_SheetSpecificationPartial")

在这种情况下,您不需要将模型显式传递给局部视图。现在你可以删除PaperSpecification 方法了。

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 2012-07-19
    • 2012-05-07
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多