我正在尝试创建控制器操作,该操作将根据参数返回JSON或部分html。使结果异步返回到MVC页面的最佳方法是什么?
在您的操作方法中,返回Json(object)以将JSON返回到您的页面。
public ActionResult SomeActionMethod() { return Json(new {foo="bar", baz="Blech"}); }
然后只需使用Ajax调用action方法即可。您可以使用ViewPage中的一种辅助方法,例如
<%= Ajax.ActionLink("SomeActionMethod", new AjaxOptions {OnSuccess="somemethod"}) %>
SomeMethod将是一个javascript方法,然后评估返回的Json对象。
如果要返回纯字符串,则可以使用ContentResult:
public ActionResult SomeActionMethod() { return Content("hello world!"); }
默认情况下,ContentResult返回一个文本/纯文本作为其contentType。 这是可重载的,因此您还可以执行以下操作:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");