当前位置:  开发笔记 > 前端 > 正文

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

如何解决《在MVC中,如何返回字符串结果?》经验,为你挑选了3个好方法。

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

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



1> swilliams..:

你可以使用它ContentResult来返回一个纯字符串:

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

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

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


我不知道这个答案当时有多准确,但是当前`ContentResult`在设置`HttpContext.Response.ContentType`之前做了`if(!String.IsNullOrEmpty(ContentType))`.我用你的第一个例子看到`text/html`,或者现在是默认的,或者是`HttpContext`的有根据的猜测.
小小的补充:您可以使用.NET框架常量,例如`MediaTypeNames.Text.Plain`或`MediaTypeNames.Text.Xml`,而不是逐字地添加"text/plain".虽然它只包含一些最常用的MIME类型._(https://docs.microsoft.com/en-us/dotnet/api/system.net.mime.mediatypenames)_

2> Haacked..:

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

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


菲尔,这是一个"最佳实践",请你解释你的答案和@swilliam之间的区别
你不能从返回ActionResult的方法返回一个字符串,所以在这种情况下你返回内容("")作为swilliams解释.如果你只需要返回一个字符串,那么你就可以让方法返回一个字符串,就像菲尔解释的那样.
假设同一个动作有多个`return`语句,用于根据条件发送`string`或`JSON`或`View`,那么我们必须使用`Content`来返回字符串.

3> Madhav Singh..:
public ActionResult GetAjaxValue()
{
   return Content("string value");
}


在回答期间更好地解释更多
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有