MVC에서 문자열 결과를 어떻게 반환합니까?


630

내 AJAX 호출에서 문자열 값을 호출 페이지로 다시 반환하고 싶습니다.

ActionResult문자열을 사용 하거나 반환 해야합니까 ?


4
확인 여기부트 스트랩 경고 메시지 반환
shaijut

답변:


1074

를 사용하여 ContentResult일반 문자열을 반환 할 수 있습니다 .

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

ContentResult기본적으로 a text/plaincontentType 으로 반환합니다 . 오버로드 가능하므로 다음을 수행 할 수도 있습니다.

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

반환 유형이 문자열 인 경우 contentType은 무엇입니까?
user1886419

7
나는이 대답은 그때 얼마나 정확하게 알고 있지만 현재하지 ContentResult않는 if (!String.IsNullOrEmpty(ContentType))설정하기 전에 HttpContext.Response.ContentType. text/html첫 번째 예제에서 보았습니다. 현재 기본값이거나에 의해 교육받은 추측 HttpContext입니다.
user247702

View에서 어떻게 액세스 할 수 있습니까?
Pradeep Kumar Das

4
작은 추가 : 문자로 "text / plain"을 문자열로 추가하는 대신 MediaTypeNames.Text.Plain또는 .NET 프레임 워크 상수를 사용할 수 있습니다 MediaTypeNames.Text.Xml. 가장 많이 사용되는 MIME 유형 중 일부만 포함하지만. ( docs.microsoft.com/en-us/dotnet/api/… )
Doku-so

@Stijn 주석에 따라 HTML을 텍스트로 반환 할 때 mime 유형을 "text / plain"으로 지정해야한다고 투표했습니다.
Roberto

113

메소드가 리턴 할 유일한 것임을 알고 있다면 문자열을 리턴 할 수도 있습니다. 예를 들면 다음과 같습니다.

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

10
Phil, 이것은 "모범 사례"입니다. 답변과 @swilliam의 차이점을 설명해 주시겠습니까?
David Perlman

9
ActionResult를 리턴하는 메소드에서 문자열을 리턴 할 수 없으므로이 경우 swilliams가 설명한대로 Content ( "")를 리턴합니다. 문자열 만 반환해야하는 경우 Phil이 설명한대로 메서드가 문자열을 반환해야합니다.
Arkiliknam

3
같은 동작을 가정하면 여러가 return하나 보내는 데 사용되는 문장 string이나 JSON또는 View우리가 사용해야하는 조건에 따라 Content문자열을 반환합니다.
DhruvJoshi

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

9
답변 중에 더 많은 것을 설명하는 것이 좋습니다
Mostafiz

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

0

2020 년 ContentResult부터는 위에서 제안한 대로 올바른 방법을 사용하지만 사용법은 다음과 같습니다.

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

-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);

    }
}

실행보기 파일에 AutoProperty을 가로 리디렉션됩니다 결과 보기를하고 보내드립니다
보기로 코드를

<!--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 에서 실행합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.