ViewBag RuntimeBinderException(MVC 4,ASPX)

use*_*951 3 .net c# asp.net asp.net-mvc viewbag

我使用ASPX引擎(不是Razor)启动了一个默认的MVC 4项目,一切正常.
我可以用

<% Model.Name %>

<% Model.Rating %>

用于收视率(而不是asp.net/mvc教程网站上的餐厅评论).但是,我的代码错误了 <% ViewBag.Message %>

...所以出于某种原因,当从BookReview模型中继承"BookReviewer"类时,我可以查看模型信息而不是Viewbag?我错过了什么吗?代码如下.

[Controller] HomeController.cs:

    public class HomeController : Controller
    {
        var model = new BookReview()
        {
            Name = "Pro jQuery For Noobs",
            Rating = 7
        };
        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

[型号] BookReview.cs

    namespace Bookreview.Models
    {
            public class BookReview
            {
                    public string Name { get; set; }
                    public int Rating { get; set; }
            }
    }
Run Code Online (Sandbox Code Playgroud)

[查看] Index.aspx:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<BookRevew.Models.BookReviewer>" %>
    <asp:Content ID="indexFeatured" ContentPlaceHolderID="FeaturedContent" runat="server">
        <h2>
            <% ViewBag.Message %>
            <% Model.Name %>
            <% Model.Rating %>
        </h2>
    </asp:content>
Run Code Online (Sandbox Code Playgroud)

mat*_*mmo 6

正如我们在您的评论中看到的那样,您正在设置ViewBag.Message另一个控制器.的ViewBag仅针对其通过投放视图的控制器设定的视点数据.

如果需要从另一个控制器发送它,则应在操作方法中使用参数,然后可以将ViewBag.Message传入的参数设置为.