Форма редактирования позволяет не только создавать новый объект с нуля, но и создать объект, в котором некоторые поля уже заполнены.

Чтобы открыть web-форму редактирования с передачей объекта с частично заполненными полями, необходимо произвести POST-запрос по адресу формы редактирования с параметром DataObject. Значение параметра DataObject - объект данных, сериализованный в XML и закодированный в HTML.

Никаких ограничений на передаваемый объект данных не налагается. Статус передаваемого объекта не играет роли, т.к. после передачи и десериализации объекта он устанавливается в ObjectStatus.Created.

Сериализация объекта производится с помощью ICSSoft.STORMNET.Tools.ToolXML подробнее d cnfnmt ICSSoft.STORMNET.Tools.XmlTools.

После сериализации XML необходимо закодировать в HTML для безопасной передачи данных. Eсли ASP.NET Request Validation увидит угловые скобочки, то может кинуть исключение A potentially dangerous Request.Form value was detected from the client; подробнее об этом на сайте www.asp.net и social.msdn.microsoft.com. Закодировать можно с помощью Server.HTMLEncode или HttpUtility.HtmlEncode.

Пример

// Сериализация объекта данных для POST-запроса на сервере
var xmldoc = ICSSoft.STORMNET.Tools.ToolXML.DataObject2XMLDocument(ref dobj);
string serializedObj = System.Web.HttpUtility.HtmlEncode(xmldoc.InnerXml); 
// Открытие формы редактирования на клиенте
var data = { 'DataObject': serializedObj };
var editformUrl = 'MyObjectE.aspx';
openUrlWithPost(editformUrl, data);

function openUrlWithPost (url, params, target) {
	var form = document.createElement("form");
	form.setAttribute("method", "post");
	form.setAttribute("action", url);
	form.setAttribute("target", target || "_blank");

	for (var key in params) {
		if (params.hasOwnProperty(key)) {
			var input = document.createElement('input');
			input.type = 'hidden';
			input.name = key;
			input.value = params[key];
			form.appendChild(input);
		}
	}

	form.submit();
};

Для Win

Аналогичный функционал для Win-приложений