【问题标题】:cannot perform runtime binding on a null reference on layout无法对布局上的空引用执行运行时绑定
【发布时间】:2014-12-31 10:03:31
【问题描述】:

它的 mvc 4.谁能帮帮我?!

控制器:

public ActionResult Order(int id, int hotelId)
{
    ViewBag.PackageFrames = packageRepo.GetPackageFrames(id);
    ViewBag.PackageId = id;
    ViewBag.HotelId = hotelId;
    return View();
}

ViewBag.PackageFrames 有三条记录。

查看:

@{
    ViewBag.Title = "Range";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<section class="header-page fade-up" style="background: url(/Images/Packages/Backgrounds/@Model.Background) 50% 0 fixed;">
    <div class="bounce-in animate4">
        <h1 class="header-pagetitle bye">@Model.Name</h1>
    </div>
</section>
<section id="internalpage">
    <div class="container clearfix">
        <div class="grid_12">
            @{List<Paristan.AgencyPortal.Model.Packages.PackageFrame> packageFrames = (List<Paristan.AgencyPortal.Model.Packages.PackageFrame>)ViewBag.PackageFrames;}
            <select id="packageFrame" packageId="@ViewBag.PackageId" hotelId="@ViewBag.HotelId">
                @foreach (var packageFrame in packageFrames)
                {
                    <option value="@packageFrame.PackageFrameId">@packageFrame.FromDate - @packageFrame.ToDate</option>
                }
            </select>
        </div>
    </div>
</section>

还有_ViewStart

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

_Layout 位于 ~/Views/Shared 文件夹中,没有任何内容为空。但我在Layout = "~/Views/Shared/_Layout.cshtml"; 行看到以下错误。

无法对空引用执行运行时绑定

【问题讨论】:

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


    【解决方案1】:

    你必须在 foreach 中使用 ViewBag.packageFrames。

       @{
            ViewBag.Title = "Range";
            Layout = "~/Views/Shared/_Layout.cshtml";
        }
    
    
    <section class="header-page fade-up" style="background: url(/Images/Packages/Backgrounds/@Model.Background) 50% 0 fixed;">
        <div class="bounce-in animate4">
            <h1 class="header-pagetitle bye">@Model.Name</h1>
        </div>
    </section>
    <section id="internalpage">
        <div class="container clearfix">
            <div class="grid_12">
                @{List<Paristan.AgencyPortal.Model.Packages.PackageFrame> packageFrames = (List<Paristan.AgencyPortal.Model.Packages.PackageFrame>)ViewBag.PackageFrames;}
                <select id="packageFrame" packageId="@ViewBag.PackageId" hotelId="@ViewBag.HotelId">
                    @foreach (var packageFrame in ViewBag.packageFrames)
                    {
                        <option value="@packageFrame.PackageFrameId">@packageFrame.FromDate - @packageFrame.ToDate</option>
                    }
                </select>
            </div>
        </div>
    </section>
    

    【讨论】:

      【解决方案2】:

      您在 .cshtml 中有 @Model.Name 并且在控制器中没有定义模型

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多