public string AjaxFormTag(IDictionary parameters)
{
currentFormId = CommonUtils.ObtainEntryAndRemove(parameters, "id", "form" + ++formCount);
validationConfig = validatorProvider.CreateConfiguration(parameters);
string afterFormTag = IsValidationEnabled ?
validationConfig.CreateAfterFormOpened(currentFormId) :
String.Empty;
string url = UrlHelper.For(parameters);
parameters["form"] = true;
if (parameters.Contains("onsubmit"))
{
string onSubmitFunc = CommonUtils.ObtainEntryAndRemove(parameters, "onsubmit");
//remove return to make it compatible for ajax condition
if (onSubmitFunc.StartsWith("return ", StringComparison.InvariantCultureIgnoreCase))
{
onSubmitFunc = onSubmitFunc.Substring(7);
}
if (onSubmitFunc.EndsWith(";", StringComparison.InvariantCultureIgnoreCase))
{
onSubmitFunc = onSubmitFunc.Remove(onSubmitFunc.Length - 1);
}
string conditionFunc = CommonUtils.ObtainEntryAndRemove(parameters, "condition", string.Empty);
if (!string.IsNullOrEmpty(conditionFunc))
{
conditionFunc += " && ";
}
conditionFunc += onSubmitFunc;
parameters["condition"] = conditionFunc;
}
bool isMethodAssigned = parameters.Contains("method");
string method = CommonUtils.ObtainEntryAndRemove(parameters, "method", "post");
parameters["url"] = url;
// reassign method so in case if there is no value the default is assigned.
if (isMethodAssigned)
{
parameters["method"] = method;
}
String remoteFunc = new AjaxHelper().RemoteFunction(parameters);
string formContent = String.Format("<form id='{1}' method='{2}' {3} onsubmit=\"{0}; return false;\" enctype=\"multipart/form-data\">", remoteFunc, currentFormId, method,GetAttributes(parameters));
return formContent + afterFormTag;
}