2

这就是我再次使用 MVC Razor。在网络上,我通过使用 JSON 的 AJAX 将数据从 JQuery 发送到控制器,反之亦然,看到了很多教程,但我找不到任何类似的 XML 示例。任何示例,教程,常见问题解答?

4

1 回答 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 回答