Asp.net Mvc Framework 六 (更多的View傳值及顯示方式)

 我們前面都使用RenderView("Index");這種方式來顯示
RenderView的重載:
RenderView(string viewName);
RenderView(
string viewName, object viewData);
RenderView(
string viewName, string masterName);
RenderView(
string viewName, string masterName, object viewData);
我們常用的當然就是第一種
第二種RenderView(string viewName, object viewData);是在顯示view時附加一個ViewData
如:
RenderView("Index"new
{
    name 
= "重典",
    sex 
= true
}
);
我們就可以在相應的View(即Index.aspx)中調用<%=ViewData["name"]%>來得到它的值

RenderView(string viewName, string masterName);
則是除了Viewname之外還指定了母板頁
如果程序寫爲
RenderView("index""layoutpage");
則是顯示index這個View , 但是母板頁使用/Views/Shared/layoutpage.master

最後一個重載是前兩者的結合,這裏不多說了

更多的View傳值方式
前面說了向VIew傳值可以用ViewData或者是TempData
這裏我們介紹ViewData傳值的另一種的方式

與Models綁定
這是我們第一次介紹Models,其實Models就是一個數據模型,比如,用戶,人,訪問記錄等
我們建立一個Person類
namespace MvcApplication2.Models
{
    
public class Person
    
{
        
string _name;

        
public string Name {
            
get return _name; }
            
set { _name = value; }
        }

        
bool _sex;

        
public bool Sex {
            
get return _sex; }
            
set { _sex = value; }
        }

    }

}
類中有Name與Sex兩個屬性
我們仍然用Eice的Index這個Action來書寫示例
首先我們實例化一個Person並將之傳給View
            Person p = new Person()
            
{
                Name 
= "鄒健",
                Sex 
= true
            }
;
            RenderView(
"Index", p);
接下來我們更改View中Eive/Index.aspx.cs
將它的更改如下
    public partial class Index : ViewPage<Person>
    
{
    }
也就是原來Index是繼承ViewPage的而現在繼承了ViewPage<Person>這個泛型
接下來我們可以在Index.aspx中寫類似以下語句了
<%=ViewData.Name %>
<%=ViewData.Sex %>
當然您也可以不寫ViewPage<Person>而還像從前一樣繼承於ViewPage
那麼訪問方法就是過去的
<%=ViewData["Name"%>
<%=ViewData["Sex"%>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章