ViewData 是什么
ViewData是一个继承自ViewDataDictionary类的Dictionary对象,它只能存储String Key/Object Value字典数组。
ViewData 只在当前 Action 中有效,生命周期和 View 相同;
ViewData是从Controller向对应的View传递值。
ViewData的值只在当前的请求中有效,生命周期和View相同,其值不能再多个请求中共享。
ViewData 后台传值
第一种方式--直接赋值
ViewData["browser"] = "1";
第二种方式--本地Action赋值
public ActionResult Index()
{
string browser = "1";
ViewData["browser"] = browser;
return View();
}
第三种方式-本地Action穿参数赋值
public ActionResult Edit(string workstatus)
{
ViewData["browser"] = workstatus;
return View();
}
ViewData 前台应用
第一种方式--页面应用-直接应用
页面初始变量传递
@{
var bs = ViewData["browser"] == "1" ? true : false;
}
页面条件Render
...
@{if(bs){
<br />
<input type="radio" />
<input type="text" />
<br/>
}}
...
第二种方式--页面应用-格式转换
@{
string workstatus = (string)ViewData["browser"];
}
...
@{if(workstatus=="1"){
<br />
<input type="radio" />
<input type="text" />
<br/>
}}
...
第三种方式--页面javascript应用
<input id="workstatus" type="hidden" value=@ViewData["browser"] />
var workid = $("#workstatus").val();
ViewData 前后台应用说明
一般情况下,后台应用方式的选择不会影响到前台,这意味着 后台选 后台方式1时,前台可以选择 前台1,2,3的任意一个方式来获取值。
特殊情况下,当后台应用方式选择 3方式-本地Action穿参数赋值,前台 的第一种方式 页面应用-直接应用 是不可行的。这点需要在应用时注意。