0

MVCアプリケーションがあり、jsonを使用してコントローラーからビューにhtmlテーブルを渡したいと思います。

このサイトでこのQ&Aを見つけました: json_encodeを推奨するJSONを介したHTMLコードの送信ですが、これはPHP用であり、C#を使用しています...

Jsonを使用してHTMLテーブルを渡すにはどうすればよいですか?

現在私は試しました:

return Json(MyHTMLTable);

私からしてみれば:

<script type="text/javascript">
$(document).ready(function () {
    $.ajax({
        url: '@Url.Action("GetTable","MyPages")',
        type: 'POST',
        success: function (result) { $('#ph').html(result.responseText); },
        error: function (result) {
            $('#err').html(result.responseText);
        }
    })
});

(phはdivです)

次のエラーが発生しました: タイプ'System.Web.UI.WebControls.TableRow'のオブジェクトのシリアル化中に循環参照が検出されました。

4

2 に答える 2

1

まず、JSON を使用してコントローラーからビューに HTML テーブルを渡す必要はありません。JSON は、通常は Web サービスとクライアントの間で、文字列化されたデータを送信する方法として意図されています。機能は SOAP に似ています。この方法でコントローラーからビューにデータを送信するのは良くありません。モデルを渡すことで得られる厳密な型指定が失われるからです。

したがって、できることは、HTML テーブルを変数としてビュー モデルのビューに渡すだけです。ViewBag を使用することもできますが、この方法では強い型付けが失われます。いずれにせよ、テーブルが C# で生成されたと仮定すると、HTML を含む文字列をMvcHtmlString. 次のようにします。

var table = MvcHtmlString.Create("<table>...");

次に、これをモデルまたは ViewBag に含めます。次に、ビュー ページで従来の Razor 構文を使用して、テーブルをページに出力できます。

@Model.Table

また

@ViewBag.table
于 2012-12-06T12:31:51.493 に答える