为什么我不能在课堂上使用Viebag。



为什么我不能在课堂上使用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.";

您能向我们提供更多信息吗?

最新更新