这就是我再次使用 MVC Razor。在网络上,我通过使用 JSON 的 AJAX 将数据从 JQuery 发送到控制器,反之亦然,看到了很多教程,但我找不到任何类似的 XML 示例。任何示例,教程,常见问题解答?
问问题
902 次
1 回答
1
JSON 是常用的,因为它几乎与 MVC 结合(并且很好地集成)。但是,根据您的设置,您应该能够很好地处理 XML(只要您不介意它是传输层的字符串,然后使用 Javascript 或 C# 库在边界的任一侧管理它) .
要给出完整的工作流程,请从 GET 操作开始:
public ActionResult MyAction()
{
MyObjWithXml model = new MyObjWithXml
{
// XML could be a serialized object or something form a data source
xml = "<FOO><BAR>baz</BAR></FOO>";
};
return View(model);
}
然后是视图:
@model MyObjWithXml
@using (html.BeginForm("MyAction", "MyController", Httpmethod.Post))
{
// Model.xml = "<FOO><BAR>baz</BAR></FOO>"
@Html.HiddenFor(x => x.xml)
<input type="submit" value="Submit" />
}
现在让我们把它发回(同样你也可以关闭 AJAX):
[HttpPost]
// may also need [AllowHtml]/[ValidateInput(false)] to allow XML characters
public ActionResult MyAction(MyObjWithXml model)
{
if (ModelState.isValid)
{
// model.xml = "<FOO><BAR>baz</BAR></FOO>";
// process and do what you need (maybe deserialize it back to whatever
// you needed or save it off to a datasource
}
return View();
}
至于显示它(以不可编辑的容量),您可以将其原始转储到页面(可能作为text/xml
数据类型),或者在使用 jQuery()解析它之后使用它$.parseXML('@Html.Raw(Model.xml)');
- 您的调用。
于 2013-06-13T15:48:21.517 回答