jquery - MVC Razor 以 XML 形式提交数据

标签 jquery xml ajax asp.net-mvc-3 razor

这又是我的 MVC Razor。 在网络中,我看到很多教程,通过 AJAX 使用 JSON 将数据从 JQuery 发送到 Controller ,反之亦然,但我找不到任何类似的 XML 示例。 有示例、教程、常见问题解答吗?

最佳答案

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); 
}

然后 View :

@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)');) -- 您的决定。

关于jquery - MVC Razor 以 XML 形式提交数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090972/

相关文章:

javascript - json - 如何正确创建 json 数组

javascript - 如何在鼠标悬停在图像上时显示 Facebook "like"链接?

Javascript 可折叠列表和 xsl

javascript - 显示等待多个异步 Ajax 调用的 Gif

javascript - node.js 相当于标准的 PHP ajax 保存方案

javascript - 使用 PHP 的 Ajax 调用非常慢

javascript - 热显示当前时间和某个指定时间值之间的时间差

sql - 从 FOR XML Sql 查询中解码文本

ios - 适用于 iOS 的简单 XML 解析器 - Objective C

ajax加载页面中的jquery ui datepicker