我使用ASPX
引擎(不是Razor)启动了默认的MVC 4项目,一切正常。
我可以用
<% 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>
答案 0 :(得分:6)
正如我们在您的评论中看到的那样,您正在另一个控制器中设置ViewBag.Message
。 ViewBag
仅适用于由投放视图的控制器设置的视图的数据。
如果你需要从另一个控制器发送它,你应该在action方法中使用一个参数,然后你可以将ViewBag.Message
设置为传入的参数。