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

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


当前回答

有两种方法从控制器返回一个字符串到视图:

第一个

您可以只返回字符串,但它不会包含在.cshtml文件中。它将只是一个出现在浏览器中的字符串。

第二个

你可以返回一个字符串作为View Result的Model对象。

下面是代码示例:

public class HomeController : Controller
{
    // GET: Home
    // this will return just a 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", s);

    }
}

在运行AutoProperty的视图文件中,它会将您重定向到Result视图并发送s 视图代码

<!--this will make this file accept string as it's model-->
@model string

@{
    Layout = null;
}

<!DOCTYPE html>

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

我在http://localhost:60227/Home/AutoProperty上运行这个。

其他回答

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

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

有两种方法从控制器返回一个字符串到视图:

第一个

您可以只返回字符串,但它不会包含在.cshtml文件中。它将只是一个出现在浏览器中的字符串。

第二个

你可以返回一个字符串作为View Result的Model对象。

下面是代码示例:

public class HomeController : Controller
{
    // GET: Home
    // this will return just a 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", s);

    }
}

在运行AutoProperty的视图文件中,它会将您重定向到Result视图并发送s 视图代码

<!--this will make this file accept string as it's model-->
@model string

@{
    Layout = null;
}

<!DOCTYPE html>

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

我在http://localhost:60227/Home/AutoProperty上运行这个。

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

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

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