1. 程式人生 > >Request.UrlReferrer 實現頁面重新整理

Request.UrlReferrer 實現頁面重新整理

在使用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 重新整理頁面能夠使用頁面狀態更新與資料庫一樣。