0

私は最初のMVCWebサイトを作成しています。このサイトでは、ユーザーがモデルデータベースに保存されているオブジェクトから選択し、(テキストフィールドに)追加のデータを入力してから、ボタンをクリックして計算を実行し、結果のテーブルを返すことができるページを作成する必要があります。これらの結果はデー​​タベースに保存されません。また、このデータテーブルは、選択されたオブジェクトに基づいて回転される列の数などが変わる可能性があります。

MVCでこれを行うための最良の方法は何ですか?これは標準のCRUD操作ではなく、私が調査したすべてのMVCチュートリアルは、実際にはCRUD操作のみを対象としています。

4

2 に答える 2

1

ビューで、目的の HTML コードを生成するだけです。SelectedObject以下では、ユーザーがテーブルとしてレンダリングするために選択したオブジェクトを想定しています。

<table>
@for (int row = 0; row < SelectedObject.Rows; row++) {
    <tr>
    @for (int col = 0; col < SelectedObject.Columns; col++) {
        <td>@SelectedObject.GetDataFor(row, col)</td>
    @}

    </tr>
@}
</table>
于 2012-07-09T17:54:40.377 に答える
1

ASP.NET MVC ページは、任意のクラス (.Net クラスを含む) に対して厳密に型指定することも、まったく型指定しないこともできます。それは大したことではありません。

あなたの代わりに、DataTable(System.Data からの) オブジェクトを使用します。構造体に署名するか、辞書のリストをビューに渡すこともできますが、実用的にしましょう。

あなたの行動(コントローラーで):

[HttpPost]
public ActionResult DoMath(int yourArguments)
{
    System.Data.DataTable yourTabularResults = new System.Data.DataTable();

    //your magic

    return View(yourTabularResults);
}

そしてあなたの見解:

@model System.Data.DataTable

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>DoMath</title>
</head>
<body>
    <div>
        @foreach (System.Data.DataRow currentLine in Model.Rows)
        {
            //do your job
        }
    </div>
</body>
</html>

よろしく

于 2012-07-09T17:54:59.933 に答える