问题描述
||
我定义了一个主表格,布局很好,它可以完成所需的工作...
@{ 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>
。
Propertyviewmodel
有自己的一组验证。目前,它们非常简单,但是以后有可能会对此设置进行更复杂的使用。
我使用ѭ3来保持viewmodel的一致性。虽然我认为这是相当不愉快的事。我想以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>
但是,我不确定如何将“ 6”真正放入对话框中,而且我不确定如何从中取出数据。
解决方法
我不完全理解您的问题,但是据我了解,您试图做的是将数据传递到对话框并从对话框中检索数据。在这种情况下,这可能会很有用:
http://api.jquery.com/jQuery.data/
这是有关如何使用的详细示例:
将数据传递到jQuery UI对话框