在我的AJAX调用中,我想将一个字符串值返回到调用页面。

我应该使用ActionResult还是只返回一个字符串?


当前回答

你也可以只返回string如果你知道这是方法唯一返回的东西。例如:

public string MyActionName() {
  return "Hi there!";
}

其他回答

你也可以只返回string如果你知道这是方法唯一返回的东西。例如:

public string MyActionName() {
  return "Hi there!";
}

你可以只返回一个字符串,但一些API不喜欢它,因为响应类型不适合响应,

[Produces("text/plain")]
public string Temp() {
    return Content("Hi there!");
}

这通常很管用

public JsonResult GetAjaxValue() 
{
  return Json("string value", JsonRequetBehaviour.Allowget); 
}

截至2020年,使用ContentResult仍然是上面提出的正确方法,但用法如下:

return new System.Web.Mvc.ContentResult
{
    Content = "Hi there! ☺",
    ContentType = "text/plain; charset=utf-8"
}

你可以使用ContentResult返回一个普通字符串:

public ActionResult Temp() {
    return Content("Hi there!");
}

ContentResult默认返回一个文本/纯文本作为它的contentType。这是可重载的,所以你还可以做:

return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");