关于asp.net mvc:在MVC中,如何返回字符串结果?

In MVC, how do I return a string result?

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

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


您只需使用ContentResult返回纯字符串:

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

ContentResult默认返回text/plain作为其contentType。 这是多重的,所以你也可以这样做:

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


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

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


1
2
3
4
public ActionResult GetAjaxValue()
{
   return Content("string value");
}


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

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

第一

you could return only string but will not be included in html
file it will be jus string appear in browser

第二

could return a string as object of View Result

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);

    }
}

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!--this to make this file accept string as model-->
@model string

@{
    Layout = null;
}

<!DOCTYPE html>

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

i run it at http://localhost:60227/Home/AutoProperty