您实际上可以使用 Action 将对象传递给控制器方法。这可以在任何可用的视图上完成,例如,我在一个共享库中有一个,它被构建到项目 bin 文件夹中,这些文件夹引用了我的共享项目(属性 - 如果视图文件较新,则在 Visual Studio 中复制)。它是这样完成的:
控制器:
public class GroovyController : Controller
{
public ActionResult MyTestView(MyModel m)
{
var viewPath = @"~\bin\CommonViews\MyTestView";
return View(viewPath, m);
}
}
MVC 页面(使用 Razor 语法):
@Html.Action("MyTestView", "Groovy", new { m = Model })
或使用RenderAction
方法:
@{ Html.RenderAction("MyTestAction", "MyTestController", new { area = "area", m = Model }); }
注意:在 中@Html.Action()
,Model
对象必须是类型MyModel
,并且第三个参数必须设置为控制器变量名称,我的是MyModel m
. 这m
是你必须分配的,所以我这样做m = Model
。