1. 程式人生 > >【MVC】MVC中頁面傳值的幾種方式總結

【MVC】MVC中頁面傳值的幾種方式總結

    原來寫程式碼的時候都是別人寫就照著寫,大部分都是返回json,使用js,但是對於其他的傳值方式用的少之又少,特別是當不使用easyUI的時候對它更是感覺到生疏,今天就對它的幾種傳值方式進行一下總結。

一、Controller-->View

1.ViewData

使用ViewData是採用鍵值對的形式,通過key值讀取對應的value;ViewData只對當前Action有效。在View中會自動識別到擁有唯一鍵值的ViewData,並將資料顯示出來。

控制器中程式碼:

<span style="font-family:KaiTi_GB2312;font-size:18px;">public ActionResult(string Type)
{
     DataSet ds = BigNumberBLL.QueryMessage(Type);
     ViewData['ds']=ds;
     return View();
}</span>
檢視中接收:
<span style="font-family:KaiTi_GB2312;font-size:18px;">@using System.Data;
@Model DataSet
<table class="Table">
	<thead>
	<tr>
		</span><td>名稱</td>
		</span><td>集中數</td>
		</span><td>權重下限</td>
		</span><td>異常數</td>
	</tr>
	<thead>
	<tbody>
	 @if(Model !=null && Model.Tables.Count >0)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>foreach(DataRow dr in Model.Tables["dta"].Rows)
<span style="white-space:pre">		</span>{
<span style="white-space:pre">			</span><tr>
 <span style="white-space:pre">				</span><td>@(dr["GROUP_NAME"]) </td>
 <span style="white-space:pre">				</span><td>@(dr["SUM_WEIGHT_VALUE"])</td>
 <span style="white-space:pre">				</span><td>@(dr["SUM_COLLECT_VALUE"])</td>
 <span style="white-space:pre">				</span><td>@(dr["Count"]) </td>
<span style="white-space:pre">			</span></tr>
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
	</tbody>
</table></span>

2、ViewBag

允許自定義屬性進行賦值,ViewBag.屬性=屬性值得方式進行傳值,其實這裡跟ViewData的使用原理類似。利用HtmlHelper建立TextBox時,使用名稱與ViewBag中的一致, 就會自動實現值繫結

控制器中程式碼:

<span style="font-family:KaiTi_GB2312;font-size:18px;">public ActionResult Index()  
{  
    ViewBag.name = "韋文文";  
    ViewBag.EnglishName = "Vivian";  
    return View();  
}  </span>
檢視中程式碼:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><pre name="code" class="html" style="line-height: 30px;"><div>          
    @Html.TextBox("name")  
    @ViewBag.EnglishName          
</div>  </span>

二、Action-->Action

前面兩種傳值方式都是在view和Controller之間進行資料傳遞,那麼如果某一個業務需要用到後臺的兩個Action,並且需要再這兩個Action之間進行資料傳遞,這時需要用到另一個概念TempData:獲取要傳遞到檢視的臨時資料.使用時,需要注意TempData的生命週期,只在第一次請求Action時臨時資料存在,之後自動變為NULL,具體的使用與ViewData相同,屬於鍵值對的資料字典類。

TempData

    使用TempData和使用ViewData方法是一樣的,不同的是它可用於在不同的Action之間傳值。

<span style="font-family:KaiTi_GB2312;font-size:18px;">public class MVCController : Controller  
{     
    public ActionResult Index1()  
    {  
        TempData["name"] = "韋文文";              
        return View();  
    }  
  
    public ActionResult Index2()  
    {  
        string strName = TempData["name"].ToString()  
        return View();  
    }  </span>

小結:

     mvc的這幾種傳值方式應該都寫過,不過總體不是很熟悉,從一開始的學習到現在寫程式碼,不斷熟練應用,越來越清晰,真的是一個不斷反覆的過程。

相關推薦

swift詳解之二十二-----------UINavigationController的基本用法和頁面方式

UINavigationController的基本用法和頁面傳值幾種方式 本文介紹UINavigationController基本用法,因為涉及多頁面順便介紹頁面傳值 1、手寫程式碼建立UINavigationController 手寫方式建立很簡

資料庫Mysql主鍵的表設計組合的實際應用效果

寫在前面         前前後後忙忙碌碌,度過了新工作的三個月。部落格許久未新,似乎對忙碌沒有一點點防備。總結下來三個月不斷的磨礪自己,努力從獨樂樂轉變到眾樂樂,體會到不一樣的是,連辦公室的新玩意都能引起莫名的興趣了,作為一隻忙碌的 “猿” 倒不知正常與否。         咳咳, 正題, 今天要寫一篇

Java建立物件的5方式

作為Java開發者,我們每天建立很多物件,但我們通常使用依賴管理系統,比如Spring去建立物件。然而這裡有很多建立物件的方法,我們會在這篇文章中學到。 Java中有5種建立物件的方式: 使用new關鍵字 這是最常見也是最簡單的建立物件的方式了。通

SVNEclipseEclipse安裝SVN外掛的方式

Eclipse安裝SVN外掛的幾種方式 第一種:線上安裝,簡單方便 在Eclipse,【Help】【Install New Software】,點選【Add】輸入名稱以及svn外掛地址。 *注,這種方式可以離線安裝,將svn外掛zip包下載後,路徑選項選擇本地zip檔案

JavaEE讀取配置檔案路徑的方式

讀取配置檔案的各種方式 1.類載入器讀取: 只能讀取classes或者類路徑中的任意資源,但是不適合讀取特別大的資源。 ①獲取類載入器 ClassLoader cl = 類名.class.getClassLoader(); ②呼叫類載入器物件的方法:

頁面值得方式

一、 使用QueryString變數 QueryString是一種非常簡單也是使用比較多的一種傳值方式,但是它將傳遞的值顯示在瀏覽器的位址列中,如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。 Response.Redirect( "target.a

Spring Boot獲取前端頁面引數的方式總結

  Spring Boot的一個好處就是通過註解可以輕鬆獲取前端頁面的引數,之後可以將引數經過一系列處理傳送到後臺資料庫,前段時間正好用到,但是忘得差不多了,獲得的方式有很多種,這種東西不寫下來一段時間不用就忘得差不多了,感覺記性越來越差了呢,這裡稍微總結一下,

MVCMVC頁面方式總結

    原來寫程式碼的時候都是別人寫就照著寫,大部分都是返回json,使用js,但是對於其他的傳值方式用的少之又少,特別是當不使用easyUI的時候對它更是感覺到生疏,今天就對它的幾種傳值方式進行一下

2017-05-21WebForm跨頁面、C#服務端跳轉頁面、 Button的OnClientClick屬性、JsgetAttribute和超鏈接點擊彈出警示框。

代碼 height delet update size 內存 客戶 bar win 一、跨頁面傳值和取值: 1、QueryString - url傳值,地址傳值 優缺點:不占用服務器內存;保密性差,傳遞長度有限。 通過跳轉頁面路徑進行傳值,方式: href="地址?ke

MVCaction向view

鍵值對 pub lsa ret 類型 dex mode 返回值 models 後臺的數據怎麽傳到view上呢?有四種方式可以實現,但其實也可以說是只有一種。 1.ViewBag 2、ViewData 3、TempData 4、model ① controller裏面的代

MVC頁面方式總結

      之前做專案的時候,只知道MVC頁面間傳值有三種方式,分別為:ViewBag、ViewData、TempData,也知道如何使用它,但是並不知道三者之前的區別,這裡強調一點,TempData可以用於Action與Action之間的傳值,而ViewBag和ViewDa

Asp.Net頁面的方法簡單總結原創

tid 周期 () 路徑 coo webp 方式 qpi 優點 1、QueryString 當頁面上form按照get的方式向頁面發送請求數據的時候,web server會將請求數據放入 一個QEURY_STRING的環境變量中,然後通過QeueryString方法

Spring MVC 從 Controller向頁面方式

用戶 () 傳參數 control let att model enter 設定 Spring MVC 從 Controller向頁面傳值的方式 在實際開發中,Controller取得數據(可以在Controller中處理,當然也可以來源於業務邏輯層),傳給頁面,常用的方

Spring MVC controller和jsp頁面

頁面封裝好Map結構後,頁面使用${} 就可以獲取到數值 Controller @Controller @RequestMapping("/index.do") public class IndexController {     @RequestMapping(par

zhlan--Python的賦運算符

運算 alt ges 比較 images pytho 比較運算符 賦值 技術分享 >>>>Python中的賦值運算符: >>>>Python中的比較運算符: zhlan--【偷】Python中的賦值運算符

ASP.Net頁面方式

webconfig local 區別 重啟 Nid 傳遞對象 app too BE 大致概括一下,ASP.NET 頁面之間傳遞值得方式大致可以分為如下幾種:Request.QueryString["name"],Request.Form("name"),Session,Co

CSS3CSS3的Rem與Px之間的換算

bootstrap預設 html{font-size: 10px;} rem是一個相對大小的值,它相對於根元素, 比如假設,我們設定html的字型大小的值為html{font-size: 87.5%;}(也就是14px)。 然後其他的字型就是將你要的值除以

swift_4swift之代理(delegate的用法)

2017.03.16更新簡潔版 protocol ChildDelegate:class{ func childDidSomething()} classChild{ weak va

轉載JAVAIO流操作的基本規律總結

reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是

數據庫Mysql主鍵的表設計組合的實際應用效果

研究 開始時間 action 設計 int rand 業務主鍵 primary 同時 寫在前面 前前後後忙忙碌碌,度過了新工作的三個月。博客許久未新,似乎對忙碌沒有一點點防備。總結下來三個月不斷的磨礪自己,努力從獨樂樂轉變到眾樂樂,體會到不一樣的是,連辦公