我有一个视图,我使用的是特定的layout.cshtml文件,而不是主要的共享布局页面:“_LayoutExCr”
这适用于控制器的Get部分:
//
// GET: /Exhibitor/Create
public ActionResult Create()
{
return View("Create","_LayoutExCr");
}
这很好用 - 并显示带有特定_LayoutExCr“主”页面的创建视图。
但是,在我的创建方法的POST中,如果输入了错误的访问代码,我想使用_LayoutExCr“主”页面返回相同的视图 - 但VS2012 Express用红色下划线:
return View(exhibitor, "_LayoutExCr");
最佳重载方法匹配 'System.Web.Mvc.Controller.View(string,string)'有一些无效 参数
//
// POST: /Exhibitor/Create
[HttpPost]
public ActionResult Create(Exhibitor exhibitor)
{
if (ModelState.IsValid)
{
if (exhibitor.AccessCode == "myaccesscode")
{
db.Exhibitors.Add(exhibitor);
db.SaveChanges();
return RedirectToAction("Thankyou");
}
else
{
ModelState.AddModelError("", "The Access Code provided is incorrect.");
return View(exhibitor, "_LayoutExCr");
}
}
return View(exhibitor, "_LayoutExCr");
}
任何人都可以让我知道如何将模型返回到视图,请使用相同的布局页面吗?
谢谢,
标记
答案 0 :(得分:3)
您需要传递视图名称和主名称,并且他们都before模型
答案 1 :(得分:2)
http://msdn.microsoft.com/en-us/library/dd492244(v=vs.98).aspx
您想要一个不同的重载:
return View("Create", "_LayoutExCr", exhibitor);
第一个参数是视图的名称。第二个是主人的名字。第三个是您要发送到视图的模型。