- 追加された行はこの色です。
- 削除された行はこの色です。
[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
*目次 [#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]
**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]]」へ。
**モジュール構成 [#x9ea01d3]
***M:Model [#ddcb3c5a]
現状、戻り値クラスを直接、Modelとして使用しているが、~
戻り値クラスにobjectフィールドを定義、ModelフォルダにModelとなるBeanを定義し、~
そこに、objectフィールドを使用してModelとなるBeanを渡したほうがイイのでは?
***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]]」を採用する。
-OrderController
-OrderDetailController