3

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

<% Model.Name %>

<% Model.Rating %>

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

...所以由于某种原因,当从 BookReview 模型中的“BookReviewer”类继承时,我可以查看模型信息,但不能查看Viewbag?我错过了什么吗?代码如下。

[控制器] HomeController.cs:

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

[模型] BookReview.cs

    namespace Bookreview.Models
    {
            public class BookReview
            {
                    public string Name { get; set; }
                    public int Rating { get; set; }
            }
    }

[查看] 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>
4

1 回答 1

6

正如我们从您的评论中看到的那样,您正在ViewBag.Message另一个控制器中设置。ViewBag仅适用于为视图提供服务的控制器设置的视图数据

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

于 2013-01-30T22:54:56.527 回答