MVC小系列PartialView中的页面重定向

Posted 那就让我这样吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC小系列PartialView中的页面重定向相关的知识,希望对你有一定的参考价值。


在mvc的每个Action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为View或者是一个PartialView,

在以Aspx为页面引擎时,PartialView被称为分部视图,扩展名为ASCX,与webform的用户控件一样,是页面的一部分,而使用Razor为页面引擎时,partialView扩展名还是cshtml

第一种情况,在Partialview中进行表单提示操作后,需要返回一个PartialView来填充原来的partialView的内容,这种情况需要action返回值类型必须是 PartialviewResult,返回代码必须是Partialview

1  public PartialViewResult Other()
2         {
3             return PartialView("Some",entity);//返回指定的分部视图
4         }

第二种情况:
在Partialview视图中提交表单,然后使整个页面进行一个跳转,这里不能使用response.redirect,而必须用js的location.href,前者会在本Partial位置进行跳转

 

 1  public PartialViewResult UserLogOn(UserLogOnModel entity)
 2          {
 3              if (ModelState.IsValid)
 4              {
 5         
 6                  Response.Write("<script>location.href=‘home/index‘;</script>");//在ascx中跳到指定页,需要用JS方法
 7                  
 8              }
 9              return PartialView();
10          }

第三种情况:在Partialview中只是一个链接,没有提交动作,只是将Partialview的部分进行重定向,这里用response.redirect

1  public PartialViewResult UserLogOn(UserLogOnModel entity)
2         {
3             if (ModelState.IsValid)
4             {
5                 Response.Redirect("/home/index");
6             }
7             return PartialView();
8         }


注意:对于Partialview的action,如果只是返回视图,而不是返回json或者其他格式的对象,最好使用PartialviewResult进行返回,而不要使用ActionResult

以上是关于MVC小系列PartialView中的页面重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何将 MVC5 RedirectResult () 重定向到 Asp.net 中的整页?

MVC小系列

使用 JavaScript/jQuery 重定向到 ASP.NET MVC 中的另一个页面

MVC javascript重定向页面不起作用

尝试从 ASP.NET Core MVC Razor 中的 _Layout 页面重定向时出错

mvc partialView断点调试问题