ASP.NET MVC 之PartialView用法

ASP.NET MVC 之PartialView用法
  第一种情况:

  PartialView中进行表单提示操作后,需要返回别一个PartialView来填充原来的这个PartialView的内容。这种情况需要我们的action返回值类型必须是PartialViewResult,返回代码必须是PartialView
  代码如下:

  

  1. public PartialViewResult ApplyRegister(User_Register_ApplyModel entity) 
  2.  
  3.   { 
  4.  
  5.   User_Register_Apply user_Register_Apply = new User_Register_Apply(); 
  6.  
  7.   TryUpdateModel(user_Register_Apply); 
  8.  
  9.   if (ModelState.IsValid) 
  10.  
  11.   { 
  12.  
  13.   user_Register_Apply.UserID = VCommons.Utils.GetNewGuid(); 
  14.  
  15.   VM = user_InfoManager.ApplyRegister(user_Register_Apply); 
  16.  
  17.   if (!VM.IsComplete) 
  18.  
  19.   { 
  20.  
  21.   VM.ToList().ForEach(i => ModelState.AddModelError("", i)); 
  22.  
  23.   } 
  24.  
  25.   else 
  26.  
  27.   return PartialView("ApplySuccess", entity.Email);//返回到指定的PartialView,它将替换ApplyRegister这个视图内容 
  28.  
  29.   } 
  30.  
  31.   return PartialView(); 
  32.  
  33.   } 

public PartialViewResult ApplyRegister(User_Register_ApplyModel entity)   {   User_Register_Apply user_Register_Apply = new User_Register_Apply();   TryUpdateModel(user_Register_Apply);   if (ModelState.IsValid)   {   user_Register_Apply.UserID = VCommons.Utils.GetNewGuid();   VM = user_InfoManager.ApplyRegister(user_Register_Apply);   if (!VM.IsComplete)   {   VM.ToList().ForEach(i => ModelState.AddModelError("", i));   }   else   return PartialView("ApplySuccess", entity.Email);//返回到指定的PartialView,它将替换ApplyRegister这个视图内容   }   return PartialView();   }

 

  第二种情况:

  在PartialView视图中提交表单,然后使整个页面进行一个跳转,需要注意的是不能用response.redirect,而必须用Jlocation.href,前者会在本partial位置进行跳换。  

    代码如下:

  

  1. public PartialViewResult UserLogOn(UserLogOnModel entity) 
  2.  
  3.   { 
  4.  
  5.   if (ModelState.IsValid) 
  6.  
  7.   { 
  8.  
  9.   if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete) 
  10.  
  11.   { 
  12.  
  13.   Response.Write("<script>location.href='home/index';</script>");//在ascx中跳到指定页,需要用JS方法 
  14.  
  15.   } 
  16.  
  17.   } 
  18.  
  19.   return PartialView(); 
  20.  
  21.   } 

public PartialViewResult UserLogOn(UserLogOnModel entity)   {   if (ModelState.IsValid)   {   if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete)   {   Response.Write("<script>location.href='home/index';</script>");//在ascx中跳到指定页,需要用JS方法   }   }   return PartialView();   }  

 

     第三种情况:

  也是最简单的一种情况,在partialview中只是一个链接,没有提交动作,只是将partialview的部分进行重定向,这里代码使response.redirect()即可  

     代码如下:

  

  1. public PartialViewResult UserLogOn(UserLogOnModel entity) 
  2.  
  3.   { 
  4.  
  5.   if (ModelState.IsValid) 
  6.  
  7.   { 
  8.  
  9.   if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete) 
  10.  
  11.   { 
  12.  
  13.   Response.Redirect("/home/index"); 
  14.  
  15.   } 
  16.  
  17.   } 
  18.  
  19.   return PartialView(); 
  20.  
  21.   } 

public PartialViewResult UserLogOn(UserLogOnModel entity)   {   if (ModelState.IsValid)   {   if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete)   {   Response.Redirect("/home/index");   }   }   return PartialView();   }

 

  个人建议,对于partialview的action,如果只是返回视图,而不是返回json和其它格式的对象,最好使用PartialViewResult 进行返回,而不要使用ActionResult,这样可以避免一些不必要的麻烦。

转载于:https://www.cnblogs.com/zcm123/archive/2013/06/09/3129564.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值