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有自己的一组验证。它们现在非常简单,但以后可能会对此设置有更复杂的用途。

我正在使用KnockoutJS我的 viewModel 一致性。虽然我认为这是相当无关紧要的。我想在 a 中显示第二种形式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 回答