[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

*目次 [#wd1b8f61]
#contents

*概要 [#x8ea1779]
-MVC用のP層フレームワークに機能追加をしたり、
-[[MVCの標準化に関する情報>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95]]を蓄積したりしているので、

これに伴う、チュートリアルに対する改修予定項目を書き溜めている。

*設計全容 [#e5c37354]
*現状の設計全容 [#e5c37354]

**BeginForm [#x781b17b]
Html.BeginFormを使用している。
**モジュール化の方針 [#y8c15779]
「[[スキャフォールディング方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#td62a820]]」を採用している。

**モジュール構成 [#ub5ffe0f]
***M:Model [#g9749f03]
Modelは作らず、Open棟梁の戻り値クラス(OrderReturnValue.cs)をそのまま使用している。

戻り値クラス(OrderReturnValue.cs)は、以下のpublicフィールドを持っている。

-注文ID~
int OrderID

-メッセージ (画面表示用)~
string Message

-Order information (summary)~
System.Data.DataTable Orders;

-Order information (details)~
System.Data.DataTable OrderDetails;

***V:View [#t08d4cac]
-枠~
_SampleLayout.cshtml

-ビュー

--メニュー~
---path : ~/Views/Menu/Index.cshtml
---メニューを表示する。

--注文画面
---path : ~/Views/Order/Index.cshtml
---注文の一覧を表示する。

--注文明細画面~
---path : ~/Views/Order/Order.cshtml
---注文と注文明細一覧を表示する(夫々の修正フォーム込)。

-部分ビュー

--注文情報部分ビュー
---path : ~/Views/Order/_OrderInfo.cshtml
---注文明細画面の中に注文を表示する(修正フォーム込)。

--注文明細情報部分ビュー
---path : ~/Views/Order/_OrderDetailsInfo.cshtml
---注文明細画面の中に注文明細一覧を表示する(修正フォーム込)。

***C:Control [#u088b131]
-メニュー画面用~
MenuController.cs

-注文データ用~
OrderController.cs

--注文画面の表示
---/Order(初期表示)
---/Order?selectedRow=X(詳細表示)
---/Order?page=X(ページング)
---/Order?sortdir=ASC&sort=XXXXX(ソーティング)
---初期表示~
url : /Order~
method : public ActionResult Index()~
---詳細表示~
url : /Order?selectedRow=X~
method : 同上~
---ページング~
url : /Order?page=X~
method : 同上~
---ソーティング~
url : /Order?sortdir=ASC&sort=XXXXX~
method : 同上~

--注文明細画面の表示
---初期表示:注文情報表示~
/Order/Order?OrderId=XXXXX
url : /Order/Order?OrderId=XXXXX~
method : public ActionResult Order(string OrderId)~

---注文情報更新フォーム表示~
/Order/GetOrderDetails?OrderId=XXXXX&g1selectedRow=X
url : /Order/GetOrderDetails?OrderId=XXXXX&g1selectedRow=X~
method : public ActionResult GetOrderDetails(int? id)~

---注文情報更新処理~
/Order/UpdateModel_OrderSummary
url : /Order/UpdateModel_OrderSummary~
method : [HttpPost] public ActionResult UpdateModel_OrderSummary(・・・~

---注文明細情報表示~
/Order/GetOrderDetails/XXXXX
url : /Order/GetOrderDetails/XXXXX~
method : public ActionResult GetOrderDetails(int? id)~

---注文明細情報更新フォーム表示~
/Order/GetOrderDetails/XXXXX?selectedRow=X
url : /Order/GetOrderDetails/XXXXX?selectedRow=X~
method : public ActionResult GetOrderDetails(int? id)~

---注文明細情報更新処理~
/Order/UpdateModel_OrderDetails
url : /Order/UpdateModel_OrderDetails~
method : [HttpPost] public ActionResult UpdateModel_OrderDetails(・・・~

---データベースの更新処理~
/Order/UpdateDatabase
url : /Order/UpdateDatabase~
method : [HttpPost] public ActionResult UpdateDatabase()~

*改修予定項目 [#o417aa72]

**モジュール化の方針 [#e9c7c2cd]
「[[スキャフォールディング方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#td62a820]]」から「[[ASPXの1画面1モジュール方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#se3008cd]]」へ。
「[[スキャフォールディング方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#td62a820]]」から「[[ASPXライクな1画面1モジュール方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#se3008cd]]」へ。

**モジュール構成 [#x9ea01d3]
***M:Model [#ddcb3c5a]
現状、戻り値クラスを直接、Modelとして使用しているが、~
-現状、戻り値クラスを直接、Modelとして使用しているが、~
戻り値クラスにobjectフィールドを定義、ModelフォルダにModelとなるBeanを定義し、~
そこに、objectフィールドを使用してModelとなるBeanを渡したほうがイイのでは?
戻り値クラスのobjectフィールドを使用してModelとなるBeanを渡したほうがイイのでは?

-また、以下の機能を活用するように実装しても良い。
--バインディング
---モデルバインディング
---双方向モデルバインディング

--DataType属性などのModelMetadataの追加
---テンプレート・ヘルパーの活用
---Validation機能の実装

***V:View [#f040d073]
-_SampleLayout.cshtml
--旧
 @{
     Layout = null;
 }
 
 <!DOCTYPE html>
 <html>
 <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
 
     @* ViewBag.Title に指定した値を画面のタイトルとする *@
     <title>@ViewBag.Title</title>
 
     @* アプリケーションで共通的な JavaScript, CSS を定義 *@
     @Styles.Render("~/Content/css")
     @Scripts.Render("~/bundles/modernizr")
     <script src="~/Scripts/jquery-1.8.2.min.js"></script>
     <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
     <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
     <link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
 
     @* ビュー側に記述可能なセクションを定義 *@
     @RenderSection("scripts", required: false)
 </head>
 <body>
     @* アプリケーションで共通的な UI 要素の例 (ここでは、h1 タグを定義する) *@
     <h1>Touryo Sample</h1>
 
     @* 各コンテンツ部分 *@
     @RenderBody()
 </body>
 </html>

--新
 @{
     Layout = null;
 }
 
 @* マスタ・ページに相当 *@
 <!DOCTYPE html>
 <html>
 <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
 
     @* ViewBag.Title に指定した値を画面のタイトルとする *@
     <title>@ViewBag.Title</title>
 
     @* アプリケーションで共通的な JavaScript, CSS を定義 *@
     @Styles.Render("~/Content/css")
     @Scripts.Render("~/bundles/modernizr")
     <script src="~/Scripts/jquery-1.8.2.min.js"></script>
     <script src="~/Scripts/jquery-ui-1.9.2.min.js"></script>
     <script src="~/Framework/Js/common.js"></script>
 
     <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
     <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
     <link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
     <link href="~/Content/themes/base/smoothness/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />
 
     @* ビュー側に記述可能なセクションを定義 *@
     @RenderSection("scripts", required: false)
 
     <script type="text/javascript">
         URL = '@Url.Action("Index", "Ping")';
     </script>
 
 </head>
 <body>
     @* アプリケーションで共通的な UI 要素の例 (ここでは、h1 タグを定義する) *@
     <h1>Touryo Sample</h1>
 
     @* 各コンテンツ部分 *@
     @RenderBody()
 </body>
 </html>

***C:Control [#q41df06d]
「[[ASPXの1画面1モジュール方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#se3008cd]]」を採用する。
「[[ASPXライクな1画面1モジュール方式>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20MVC%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95#se3008cd]]」を採用する。

-OrderController
-OrderDetailController


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS