我在动作的JSON响应中返回一些简单的HTML标记。
以下是完整的回复(为了便于阅读而添加了换行符):
{
"Success":true,
"Content":"\r\n
<div class=\"editor-form\">\r\n
<form action=\"/Blah/Blah/5104?id=9\" method=\"post\">
<input data-val=\"true\" data-val-number=\"The field Id must be a number.\" data-val-required=\"The Id field is required.\" id=\"Id\" name=\"Id\" type=\"hidden\" value=\"5104\" />
<input data-val=\"true\" data-val-number=\"The field Vat Rate must be a number.\" data-val-required=\"The Vat Rate field is required.\" id=\"VatRate\" name=\"VatRate\" type=\"hidden\" value=\"1.2000\" />
<div class=\"display-field\">\r\n\t
<label for=\"Price\">Price (Ex-VAT)</label>\r\n\t
<input class=\"text-box single-line\" data-val=\"true\" data-val-number=\"The field Price must be a number.\" data-val-required=\"The Price field is required.\" id=\"Price\" name=\"Price\" type=\"text\" value=\"92.50\" />\r\n\t
</div>\r\n
</form>
</div>",
"Data":null,
"Errors":null
}
这是我在成功回应后用它做的事情:
$("#EditPriceDialog").html(data.Content).dialog(MyProject.UI.DialogOptions({ minWidth:380, minHeight:200, modal:true }))
当标记呈现时,表单元素丢失。表单内的元素仍然存在。这只发生在Chrome中。在IE9和FF 19中,表单元素就在那里。 Chrome有什么不同?
答案 0 :(得分:19)
如果表单元素已被其他表单元素包围,则会删除表单元素。此外,ASP .Net为其服务的所有页面呈现表单标记,因此Chrome正在剥离data.Content中的表单标记。我不认为IE或firefox就是这样的。
编辑:希望您会发现这个有用,How do you overcome the html form nesting limitation?