ASP.NET MVC学習ノート-controllerとView伝値
asp.net2.0のウェブ開発モードでは、アクセスページコントロールを直接ページに書き込むことで、値をページに書き込むのが一般的ですが、Asp.NetMVCモードでは、Controllerでページコントロールにアクセスできなくなりましたが、どのようにしてViewページに値を渡すことができますか?Controllerには2つの辞書(ViewDataとTempData)があり、View間の値の転送を実現し、ControllerはViewData、TempDataを介してViewResultに転送され、ViewResultからViewPageに転送されて値の転送を実現します.
1.TempDataとViewDataの応用
ViewDataは現在のActionに対してのみ有効であるが、TempDataはSessionに少し似ており、すべてのViewにアクセスすることができ、一般的にエラー情報を記録するために使用される.
アクションコード:
ページコード:
TempDataの使用方式はViewの使用方式と一致する.
2.ViewDataとTextBoxの自動バインド
HtmlHelperを使用してTextBoxを作成する場合、名前をViewDataのKeyと一致させると、次のような値バインドが自動的に実行されます.
Name:"name") %>
名称が異なる場合は、TextBoxのリロード値を利用することもできます.
Name:"name", ViewData["Nm"]) %>
3.ViewControllerへの値の転送
1). アクションパラメータの利用
2).Requestを利用する.FromまたはRequest.QueryString
3). FormCollectionによるページ値の取得
4.伝達強さタイプ
1).転送の強いタイプModelのアクションを追加
対応するViewもViewPageに続く必要があります.対応コードは次のとおりです.
1.TempDataとViewDataの応用
ViewDataは現在のActionに対してのみ有効であるが、TempDataはSessionに少し似ており、すべてのViewにアクセスすることができ、一般的にエラー情報を記録するために使用される.
アクションコード:
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
ページコード:
"Message"]) %>
TempDataの使用方式はViewの使用方式と一致する.
2.ViewDataとTextBoxの自動バインド
HtmlHelperを使用してTextBoxを作成する場合、名前をViewDataのKeyと一致させると、次のような値バインドが自動的に実行されます.
Name:"name") %>
名称が異なる場合は、TextBoxのリロード値を利用することもできます.
Name:"name", ViewData["Nm"]) %>
3.ViewControllerへの値の転送
1). アクションパラメータの利用
:
public ActionResult Index(string name, string sex)
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
ViewData["name"] = name;
ViewData["sex"] = sex;
return View();
}
2).Requestを利用する.FromまたはRequest.QueryString
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
ViewData["name"] = Request.Form["name"];
ViewData["sex"] = Request.Form["sex"];
return View();
}
3). FormCollectionによるページ値の取得
public ActionResult Index(FormCollection form)
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
User u=new User();
u.Name = form["Name"];
u.Password = form["Password"];
return View(u);
}
4.伝達強さタイプ
1).転送の強いタイプModelのアクションを追加
public ActionResult ModelDemo()
{
User u= new User() { UserName="li", Password="abcde" };
return View(u);
}
対応するViewもViewPageに続く必要があります.対応コードは次のとおりです.
UserName:
Password: