我有一个带有提交按钮的视图(Index.cshtml)。单击提交按钮时,它会调用控制器(TestController.cs)中的操作(Action01),因此在操作结束时,我希望返回到调用者(Index.cshtml)视图,并将自定义视图模型作为参数。我该怎么做?
使用View(“ViewName”,模型)首次尝试后的结果:
引发错误,因为操作在控制器Test中,所以返回,它正在搜索\ Views \ Tests \ Index,而我的索引页面位于\ Views \ Home \ Index。
未找到视图“索引”或其主控,或者没有视图引擎支持搜索的位置。搜索了以下位置:
~/Views/Test/Index.aspx
~/Views/Test/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Test/Index.cshtml
~/Views/Test/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
我使用过return View("ViewName", model)
,我已经改变了我的目录结构,因为它就是问题。
答案 0 :(得分:84)
您可以直接返回不同的视图,如:
return View("NameOfView", Model);
或者您可以制作部分视图,并可以返回:
return PartialView("PartialViewName", Model);
答案 1 :(得分:42)
要返回其他视图,您可以指定要返回的视图的name
和model
,如下所示:
return View("ViewName", yourModel);
如果视图位于视图文件夹下的不同文件夹中,则使用以下绝对路径:
return View("~/Views/FolderName/ViewName.aspx");
答案 2 :(得分:3)
您必须在Controller Action方法中指定自定义视图的名称及其相关模型。
public ActionResult About()
{
return View("NameOfViewYouWantToReturn",Model);
}
答案 3 :(得分:0)
此外,您只需设置ViewName:
return View("ViewName");
完整控制器示例:
public ActionResult SomeAction() {
if (condition)
{
return View("CustomView");
}else{
return View();
}
}
这适用于MVC 5。
答案 4 :(得分:0)
public ActionResult Index()
{
return View();
}
public ActionResult Test(string Name)
{
return RedirectToAction("Index");
}
返回视图
直接显示您的HTML页面,但
重定向到动作
已执行动作