0

プライマリ フォームが定義され、適切にレイアウトされています。これは、必要なことを実行します...

@{ Html.BeginForm(); }
@Html.ValidationSummary(false)
@Html.AntiForgeryToken()
@Html.EditorFor(model => model)
<h2>Properties</h2>
<hr />
@* I want to put some stuff here... *@
<br class="space" />
<div class="clearfix">>
    <button type="submit" data-bind="click: save">
        Save
    </button>
</div>
@{ Html.EndForm(); }

さて。このモデル (または ViewModel ではなく) には、 がIList<PropertyViewModel>添付されています。

APropertyViewModelには独自の検証セットがあります。これらは今のところ非常に単純ですが、後でこのセットアップがより複雑に使用される可能性があります。

私はKnockoutJSviewModelの一貫性のために使用しています。私はそれがかなり無関係だと思いますが。基本的に、2番目のフォームを表示しjQuery UI Dialogて結果を返したい..

<script type="text/javascript">
    var viewModel = {
        name: ko.observable(),
        description: ko.observable(),
        properties: ko.observableArray(),

        save: function () {
            alert(ko.toJSON(viewModel));
        },

        includeProperty: function () {
            $("#dialog").dialog({
                width: 500,
                closeText: '',
                resizable: true,
                buttons: {
                    'Submit': function () {
                        $(this).dialog('close');
                        callback( @* I want the new data to get sent back *@ );
                    },
                    'Cancel': function () {
                        $(this).dialog('close');
                        return false;
                    }
                }
            });
        }
    };
    function callback(value) {
        alert(ko.toJSON(value)); // (I will push the new property to the viewmodel here)
    }
    ko.applyBindings(viewModel);
</script>

ただし、実際にEditorTemplateダイアログに入れる方法がよくわかりません。さらに、データを元に戻す方法もわかりません。

4

1 に答える 1

1

私はあなたの質問を完全には理解していませんが、あなたがしようとしていることは、ダイアログにデータを渡し、ダイアログからデータを取得することだと理解しました。その場合は、これが役立つ場合があります。

http://api.jquery.com/jQuery.data/

使用方法の詳細な例を次に示します。

jQuery UI ダイアログにデータを渡す

于 2011-05-27T18:44:47.977 に答える