在MVC中,如何返回字符串结果?

时间:2009-02-16 17:44:58

标签: asp.net-mvc ajax actionresult

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

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

6 个答案:

答案 0 :(得分:1009)

您可以使用ContentResult返回纯字符串:

public ActionResult Temp() {
    return Content("Hi there!");
}
默认情况下,

ContentResult会将text/plain作为contentType返回。这是可以超载的,所以你也可以这样做:

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

答案 1 :(得分:110)

如果您知道方法将返回的唯一内容,您也可以返回字符串。例如:

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

答案 2 :(得分:8)

public ActionResult GetAjaxValue()
{
   return Content("string value");
}

答案 3 :(得分:2)

截至2020年,使用ContentResult仍然是建议的above的正确方法,但是用法如下:

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

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

有两种方法可以将字符串从控制器返回到视图

首先

  

你只能返回字符串,但不会包含在html中   文件将是jus字符串出现在浏览器中


第二

  

可以返回一个字符串作为View Result

的对象

这是执行此操作的代码示例

public class HomeController : Controller
{
    // GET: Home
    // this will mreturn just string not html
    public string index()
    {
        return "URL to show";
    }

    public ViewResult AutoProperty()
    {   string s = "this is a string ";
        // name of view , object you will pass
         return View("Result", (object)s);

    }
}
<\ n>在视图文件中运行 AutoProperty ,它会将您重定向到结果视图,并发送 s
要查看的代码

<!--this to make this file accept string as model-->
@model string

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Result</title>
</head>
<body>
    <!--this is for represent the string -->
    @Model
</body>
</html>
  

我在http://localhost:60227/Home/AutoProperty

运行它