在我的AJAX调用中,我想将字符串值返回给调用页面。
我应该使用ActionResult
还是只返回一个字符串?
答案 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>
运行它