ASP.NET - MVC 4使用从控制器到视图的变量
本文关键字:控制器 视图 变量 NET MVC ASP | 更新日期: 2023-09-27 18:12:38
我有一个这样的控制器:
public class PreviewController : Controller
{
// GET: Preview
public ActionResult Index()
{
string name = Request.Form["name"];
string rendering = Request.Form["rendering"];
var information = new InformationClass();
information.name = name;
information.rendering = rendering;
return View(information);
}
}
,在视图中,我试图像这样输入information.name:
@ViewBag.information.name
我也试过了:
@information.name
,但得到相同的错误:
不能对空引用执行运行时绑定
我做错了什么?
必须在视图中使用@Model.name
。不是@ViewBag.information.name
。同样,在视图的顶部,你必须定义如下内容:
@model Mynamespace.InformationClass
使用MVC的模型绑定特性会更好。因此,像这样改变你的动作方法:
public class PreviewController : Controller
{
[HttpPost] // it seems you are using post method
public ActionResult Index(string name, string rendering)
{
var information = new InformationClass();
information.name = name;
information.rendering = rendering;
return View(information);
}
}
在视图中输入
@Model.name
由于InformationClass是你的模型,你只需使用@Model
您需要在您的动作中设置ViewBag.InformationName
:
ViewBag.InformationName = name;
然后在视图中你可以引用它:
@ViewBag.InformationName
或者如果你试图在视图中使用模型数据,你可以通过以下方式引用它:
@Model.name
请将该示例添加到视图文件
@model Your.Namespace.InformationClass
那一行负责定义您的模型类型。之后你可以使用:
@Model.name;