65

我有一个带有提交按钮的视图(Index.cshtml)。单击提交按钮时,它会在控制器 (TestController.cs) 中调用一个操作 (Action01),因此在操作结束时,我想以自定义视图模型作为参数返回调用者 (Index.cshtml) 视图. 我该怎么做呢?

首次尝试使用 View("ViewName",model)后的结果:

引发错误,因为该操作在控制器 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),并且我已经更改了我的目录结构,因为这是问题所在。

4

5 回答 5

112

您可以直接返回不同的视图,例如:

return View("NameOfView", Model);

或者您可以进行局部视图并可以返回如下:

return PartialView("PartialViewName", Model);
于 2013-09-20T06:57:20.200 回答
61

要返回不同的视图,您可以指定要返回的视图,name如下model所示:

return View("ViewName", yourModel);

如果视图位于Views文件夹下的不同文件夹中,则使用以下绝对路径:

return View("~/Views/FolderName/ViewName.aspx");
于 2013-09-20T06:54:15.203 回答
7
            public ActionResult Index()
            {
                return View();
            }


            public ActionResult Test(string Name)
            {
                return RedirectToAction("Index");
            }

Return View直接显示你的view

Redirect ToAction执行动作

于 2019-05-08T11:25:26.383 回答
4

您必须在 Controller Action 方法中指定自定义视图的名称及其相关模型。

public ActionResult About()
{            
   return View("NameOfViewYouWantToReturn",Model); 
}
于 2017-04-04T11:00:02.890 回答
0

此外,您可以只设置 ViewName:

return View("ViewName");

完整的控制器示例:

public ActionResult SomeAction() {
    if (condition)
    {
        return View("CustomView");
    }else{
        return View();
    }
}

这适用于 MVC 5。

于 2018-06-27T16:38:49.893 回答