为什么我不能在课堂上使用ViewBag。
名称"ViewBag"在当前上下文中不存在
我用它来存储值
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
使用我使用的内容
using Shop.Data.Migrations.IServices;
using Shop.Data.Models;
using Shop.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using System.Data.Entity;
using System.Web.Mvc;
这不是控制器类
注意:Your Controller class must derives from ControllerBase
使用 ViewBag
ViewBag
属于System.Web.Mvc
命名空间。
ViewBag
是动态属性属于ControllerBase
抽象类。
控制器基类实现 IController 接口并添加多个 方法和属性(例如 ViewBag)。它定义了一个抽象 负责查找操作方法的执行核心方法 并执行它。如果选择从 ControllerBase,您必须为此提供实现 方法。
控制器类派生自 ControllerBase。它提供了一个 实现 ExecuteCore 方法并添加几个有用的方法 您可以在控制器中使用(例如 View()、Redirect() 等)。
总结一下 - 控制器库和控制器都是内置基础 控制器的类。内置,因为它们是 ASP.NET MVC 框架。控制器的基类,因为如果您 从它们派生,您将创建一个控制器。
以上复制自此链接,为您提供更多想法
样本
using System.Web.Mvc;
namespace Sample.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public void Upload(string searchString)
{
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.UploadError = "Upload file error";
}
}
}
using System.Web.Mvc;
应该足以在控制器类中使用 ViewBage:
ViewBag.Message = "Your application description page.";
您能向我们提供更多信息吗?