MVCは簡単な登録ページを実現する
4553 ワード
MVCの勉强を始めたばかりで、Webformから転向するのは确かに少し骨が折れる.多くの东东はすでに1つの形式を変えて、绝えずこれに适応している.以下は简単な登录ページを说明することでMVCでよく使われる操作を熟知する.
ModelのUserクラスは次のとおりです.
public class User
{
//
public string LoginName { get; set; }
//
public string Password { get; set; }
//
public string Email { get; set; }
//
public string Phone { get; set; }
}
MVCの最大のメリットは、注目点を分離することです.つまり、開発中にページが何であるかにかかわらず、ビジネスロジックを開発することができます.次はRegisterControllerの操作です.public class registerController : Controller
{
//
public ActionResult Create(FormCollection form)
{
User user = new User()
{
// , request, formcollection
LoginName=form["name"],
// LoginName = Request.Form["loginName"],
Password = Request.Form["password"],
Phone = Request.Form["phone"],
Email = Request.Form["email"]
};
// viewdata
ViewData["UserInfo"] = user;
return View();
}
//
public ActionResult Reg()
{
//
IDictionary star = new Dictionary();
//
star.Add(1, " ");
star.Add(2, " ");
star.Add(3, " ");
star.Add(4, " ");
star.Add(5, " ");
star.Add(6, " ");
star.Add(7, " ");
star.Add(8, " ");
star.Add(9, " ");
star.Add(10, " ");
star.Add(11, " ");
star.Add(12, " ");
//
SelectList starList = new SelectList(star, "key", "value");
//
ViewData["star"] = starList;
return View();
}
}
以上のビジネスロジックがあれば、ページの操作を実現することができます.登録ページ
" %>
Reg
ユーザー
:
:
:
:
:
:
:
:
詳細ページは次のとおりです.
" %>
Create
ケーススタディ上記の例ではいくつかのキーを用いたが,以下で分析する.
1.転送値の取得
上記の例では、FormCollectionクラスとRequestオブジェクトの2つの方法を適用して、同じ使い方で伝達された値を取得します.
2.ページジャンプ
例えばHtml.BeginForm(「Create」,「Register」,「FormMethod.Post」)は、post方式でページがコミットされたときにRegisterコントローラのCreateメソッドに渡されることを表す.この方法のパラメータはまだたくさんあるので,自分で研究することができる.
3.viewdataはページに値を返します.viewdataはコンテナのようなもので、上記の例ではviewdataによって渡されます.例えばコントローラではViewData["UserInfo"]=user;userオブジェクトをコンテナにロードし、ページ上のloginを通過する.models.user user= ViewData["UserInfo"] as loginMvc.Models.Userはページ上のuserに値を付与します.ここで強制変換が必要であることに注意してください.
4.viewdataとTempDataの違い
ViewDataプロパティは、任意のオブジェクトのデータ型を格納するために使用できるViewData Dictionaryクラスですが、格納されているキー値は文字列ViewDataの特性でなければなりません.現在のHTTPリクエストにのみ存在し、セッションのように次のHTTPリクエストにデータを持ち込むことができます.ViewDataと同様、辞書クラスに属していますが、彼のデータはWebページのリクエストにすぎません.