Request.UrlReferrer 实现页面刷新
2016-06-25 11:28
585 查看
在使用Ajax 异步提交表单的时候,需要返回某些状态信息。但如果把需要返回的如分页、过滤的参数写在控制器的参数里面,会比较繁琐。
因此,1、可以在控制器里面使用 Request 对象的请求的URL. Request.UrlReferer.
//管理员将单个申报项目设置为提交。
[Authorize(Roles = "SuperAdministrator")]
[HttpPost]
public ActionResult MakeASubmit(string id)
{
var applicationProject = db.ApplicationProjects.Find(id);
if (applicationProject == null)
{
return new HttpNotFoundResult();
}
applicationProject.IsSubmit = true;
db.SaveChanges();
if (Request.UrlReferrer != null)
{
var returnUrl = Request.UrlReferrer.ToString();
return new RedirectResult(returnUrl); //返回当前请求的URL。
}
return RedirectToAction("Index", "ApplicationProject");
}
2、同样,也可以View 中使用。
如:
@if (Request.UrlReferrer != null)
{
var returnUrl = Request.UrlReferrer.ToString();
<a href="@returnUrl">返回我的申报列表</a>
}
else
{
@Html.ActionLink("返回我的申报列表", "IndexForApplicator")
}
在javascript 中, 也可以使用 location.href =location.href 刷新页面。这种适用于以Ajax 方式提交表单的情况,因为实践证明,ajax 方式提交的表单使用上述方法,不能更新页面状态。只能原样加退。使用 location.href =location.href 刷新页面能够使用页面状态更新与数据库一样。
因此,1、可以在控制器里面使用 Request 对象的请求的URL. Request.UrlReferer.
//管理员将单个申报项目设置为提交。
[Authorize(Roles = "SuperAdministrator")]
[HttpPost]
public ActionResult MakeASubmit(string id)
{
var applicationProject = db.ApplicationProjects.Find(id);
if (applicationProject == null)
{
return new HttpNotFoundResult();
}
applicationProject.IsSubmit = true;
db.SaveChanges();
if (Request.UrlReferrer != null)
{
var returnUrl = Request.UrlReferrer.ToString();
return new RedirectResult(returnUrl); //返回当前请求的URL。
}
return RedirectToAction("Index", "ApplicationProject");
}
2、同样,也可以View 中使用。
如:
@if (Request.UrlReferrer != null)
{
var returnUrl = Request.UrlReferrer.ToString();
<a href="@returnUrl">返回我的申报列表</a>
}
else
{
@Html.ActionLink("返回我的申报列表", "IndexForApplicator")
}
在javascript 中, 也可以使用 location.href =location.href 刷新页面。这种适用于以Ajax 方式提交表单的情况,因为实践证明,ajax 方式提交的表单使用上述方法,不能更新页面状态。只能原样加退。使用 location.href =location.href 刷新页面能够使用页面状态更新与数据库一样。
相关文章推荐
- iOS Version和Build区别
- 【Arduino官方教程第零辑】基础部分 2-3 PWM
- zabbix Queue队列
- DuiLib学习(四)
- Android开发中更新UI时runOnUIthread(Runnable)与Handler.post(Runnable)的区别及如何选择
- 安装get_homologues
- 生产者消费者模型(二)-引入ArrayBlockingQueue
- 1007. Maximum Subsequence Sum (25)
- Count Numbers with Unique Digits
- aufomaper Queryable Extensions ProjectTo
- ACM/ICPC竞赛之STL--queue
- MySQL子查询(subquery)分类
- java GUI Graphics2D 绘图
- wxWidgets学习笔记(二):使用wxFormBuilder、wxWidgets和Code::Blocks创建GUI程序
- Arduino 学习笔记(二)
- UICollectionView
- SeaJS与RequireJS最大的区别
- 史上最强Sublime 笔记系列---精选插件和UI主题
- requireJs
- C# 向IQueryable添加一个Include扩展方法