2009-02-16 22 views
539

Trong cuộc gọi AJAX của tôi, tôi muốn trả về một giá trị chuỗi quay lại trang gọi.Trong MVC, làm cách nào để trả lại kết quả chuỗi?

Tôi có nên sử dụng ActionResult hoặc chỉ trả về một chuỗi không?

+2

séc [ở đây] (http://stackoverflow.com/a/30323853/2218697) để ** trả về thông điệp cảnh báo bootstrap ** – stom

Trả lời

918

Bạn chỉ có thể sử dụng ContentResult để trả về một chuỗi đồng bằng:

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

ContentResult theo mặc định trả về một text/plain như contentType của nó. Điều này có thể quá tải để bạn cũng có thể làm:

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

Ah cảm ơn, không bao giờ biết về điều này :). – Morph

+1

Điều đó thật tuyệt! Tôi cũng không biết về điều này. – Chaddeus

+0

Mỗi ngày bạn học điều gì đó mới mẻ! –

104

Bạn cũng có thể trả lại chuỗi nếu bạn biết đó là điều duy nhất mà phương thức sẽ trả về. Ví dụ:

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

Phil, đây có phải là "Thực hành Tốt nhất" không, bạn có thể giải thích sự khác biệt giữa câu trả lời của bạn và @swilliam 's –

+9

Bạn không thể trả về chuỗi từ phương thức trả về ActionResult, vì vậy trong trường hợp này bạn trả về Nội dung ("") như swilliams giải thích. Nếu bạn chỉ cần trả về một chuỗi, thì bạn sẽ có phương thức trả về một chuỗi, như Phil giải thích. – Arkiliknam

+2

Giả sử hành động tương tự có nhiều câu lệnh 'return' được sử dụng để gửi' string' hoặc 'JSON' hoặc' View' dựa trên điều kiện thì chúng ta phải sử dụng 'Content' để trả về chuỗi. – DhruvJoshi

4
public ActionResult GetAjaxValue() 
{ 
    return Content("string value"); 
} 
+8

tốt hơn để giải thích thêm trong khi trả lời – Mostafiz

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

có 2 cách để trả về một chuỗi từ bộ điều khiển để quan điểm

đầu tiên

bạn có thể trở lại chỉ chuỗi nhưng sẽ không được được bao gồm trong tệp html html sẽ xuất hiện trong trình duyệt


thứ hai

có thể trả về một chuỗi như đối tượng của Xem Kết Quả

đây là mẫu mã để làm điều này

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

    } 
} 

theo quan điểm của tập tin để chạy AutoProperty nó sẽ chuyển hướng bạn đến Kết quả xem và sẽ gửi s
mã để xem

<!--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> 

tôi chạy nó ở http://localhost:60227/Home/AutoProperty

Các vấn đề liên quan