在我的控制器中,我做了这样的初始化:
using mylib.product;
using mylib.factory;
product p = new product();
factory f = new factory(p);
如何在局部视图中使用@model关键字做同样的事情?
由于
答案 0 :(得分:1)
如果您正在尝试添加名称空间/类,那么它就是:
@using mylib.product;
答案 1 :(得分:1)
我应该通过
将模型解析为视图return View("ViewName");
并在视图中;
@model Project.Namespace.Class
答案 2 :(得分:1)
您应该使用视图模型:
public class MyViewModel
{
public string Name { get; set; }
public string Address { get; set; }
}
将从控制器操作传递给视图:
public ActionResult Index()
{
product p = new product();
factory f = new factory(p);
var model = new MyViewModel
{
Name = p.Name,
Address = f.Address
}
}
然后您的视图将强烈输入此视图模型:
@model MyViewModel
@Html.DisplayFor(x => x.Name)
@Html.DisplayFor(x => x.Address)
答案 3 :(得分:0)
我认为您需要将多个不同类的实例传输到View。(我是对的吗?)如果是,我建议使用ViewBag。像这样:
// Controller
=========
product p = new product();
factory f = new factory(p);
....
// Add some value for p and f
ViewBag.Product = p;
ViewBag.Factory = f;
return View();
// View
=========
var p = (product) ViewBag.Product;
var f = (factory) ViewBag.Factory;
// now you have access to p and f properties, for example:
@Html.Label(p.Name)
@Html.Label(f.Address)
不要忘记ViewBag是一个动态容器,如果要在View中使用其值,则需要将其转换为类型