程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net Mvc Framework 五 (向View傳值以及Redirect)

Asp.net Mvc Framework 五 (向View傳值以及Redirect)

編輯:關於ASP.NET

ViewData與TempData屬性來向View頁傳遞對象

上文中已經提到,使用ViewData可以將數據由Controller傳遞到View

在前文中我們建立了EiceController類

在本文的示例中我們將這個Controller改一下

namespace MvcApplication2.Controllers
{
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.Mvc;
  /**//// <summary>
  /// 記不記得前面講過的,所有Controller都要繼承於
  /// Controller類當然Controller有很多種,我們慢慢講
  /// </summary>
  public class EiceController : Controller
  {
    public void Index() {
      ViewData["ViewData"] = "在這裡顯示ViewData";
      TempData["TempData"] = "在這裡顯示TempData";
      RenderView("Index");
    }
    public void Index2() {
      RenderView("Index");
    }
  }
}

我們將Index的參數移除,並提供了ViewData和TempData的賦值

在Views/Eice/Index.aspx這個View中我們寫以下代碼

1:<%=ViewData["ViewData"]%><br />

2:<%=TempData["TempData"]%>注意上面的1.2不是行號...

接下來我們運行工程

訪問http://localhost/Eice/Index

可以看到運行得到以下

1.在這裡顯示ViewData

2.在這裡顯示TempData

再訪問http://localhost/Eice/Index2

顯示結果為

1.

2.在這裡顯示TempData這裡1顯示是的ViewData中的內容,2為TempData傳遞的內容

我們可以看到

ViewData只能在本Action中有效

但是TempData可以類似於Session一樣到其它頁面仍然存在,但只限一頁的訪問(類似於Monorail中的Flash)

TempData一般用於臨時的緩存內容或拋出錯誤頁面時傳遞錯誤信息

Redirect方法跳轉頁面到其它的Controller/Action

RedirectToAction(Action名);

RedirectToAction(Action名, Controller名);

RedirectToAction(RouteValueDictionary);在這裡前兩種都沒有什麼好說的RedirectToAction("About","Home");就是一種寫法

主要是第三種重載

用戶可以這樣寫

System.Web.Routing.RouteData routeData = new System.Web.Routing.RouteData();
routeData.Values.Add("Action", "About");
routeData.Values.Add("Controller", "Home");
RedirectToAction(routeData.Values);

這樣就可以完成頁面跳轉

當然,也可以使用傳統的Response.Redirect來完成頁面的跳轉

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved