最後來說明其他【由View傳遞資料到Controller】的方式,分為以下幾種:
RouteData類別:透過路由範本取得參數值(/{Controller}/{Action}/{id})。
Controller:利用網址傳遞參數(/Demo/DemoRoute/1),得到id為1的值。
public ActionResult DemoRoute(int id)
{
ViewBag.id=id;
return View();
}
View:接收ViewBag的內容後再呈現。
<h3>RouteData類別資料傳遞<h3>
<p>
ID:@ViewBag.id
</p>
Model Binder類別
Controller:接收View傳來的參數,再回傳給View呈現。
public ActionResult ModelBinder(string name)
{
ViewBag.Name=name;
return View();
}
View:將填入的參數送出到Controller後,再接收回來呈現。
<div>
@using(Html.BeginForm()){
請填入名字:<input type="text" name="name" />
<input type="submit" value="送出" />
}
</div>
<p>Name:@ViewBag.Name</p>
FormCollection類別:類似Model資料傳遞。
Controller:利用ViewBag來接收傳入的參數。
public ActionResult BasicForm(FormCollection Form)
{
ViewBag.Name=Form["name"];
ViewBag.ClassName=Form["classname"];
return View();
}
View:將填入的參數送出到Controller後,再接收回來呈現。
<div>
@using(Html.BeginForm()){
請填入名字:<input type="text" name="name" />
請填入班級:<input type="text" name="classname" />
<input type="submit" value="送出" />
}
</div>
<p>Name:@ViewBag.Name</p>
<p>Class:@ViewBag.ClassName</p>
好的,今天就先到這兒,明天再來繼續吧!