Trong cuộc gọi AJAX của tôi, tôi muốn trả lại giá trị chuỗi cho trang gọi.
Tôi nên sử dụng ActionResult
hoặc chỉ trả lại một chuỗi?
Trong cuộc gọi AJAX của tôi, tôi muốn trả lại giá trị chuỗi cho trang gọi.
Tôi nên sử dụng ActionResult
hoặc chỉ trả lại một chuỗi?
Câu trả lời:
Bạn chỉ có thể sử dụng ContentResult
để trả về một chuỗi đơn giản:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
theo mặc định trả về a text/plain
là contentType của nó . Điều này là quá tải nên bạn cũng có thể làm:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResult
thì if (!String.IsNullOrEmpty(ContentType))
trước khi cài đặt HttpContext.Response.ContentType
. Tôi đang nhìn thấy text/html
với ví dụ đầu tiên của bạn, bây giờ đó là mặc định hoặc đó là một phỏng đoán có giáo dục của HttpContext
.
MediaTypeNames.Text.Plain
hoặc MediaTypeNames.Text.Xml
. Mặc dù nó chỉ bao gồm một số loại MIME được sử dụng nhiều nhất. ( docs.microsoft.com/en-us/dotnet/api/ Kẻ )
Bạn cũng có thể trả về chuỗi nếu bạn biết đó là điều duy nhất phương thức sẽ trả về. Ví dụ:
public string MyActionName() {
return "Hi there!";
}
return
báo cáo được sử dụng để gửi một trong hai 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ở lại chuỗi.
public ActionResult GetAjaxValue()
{
return Content("string value");
}
Đến năm 2020, sử dụng ContentResult
vẫn là phương pháp đúng như đề xuất ở trên , nhưng cách sử dụng như sau:
return new System.Web.Mvc.ContentResult
{
Content = "Hi there! ☺",
ContentType = "text/plain; charset=utf-8"
}
Có 2 cách để trả về một chuỗi từ trình điều khiển để xem
Đầu tiên
bạn chỉ có thể trả về chuỗi nhưng sẽ không được bao gồm trong tệp html. Nó sẽ là chuỗi jus xuất hiện trong trình duyệt
thứ hai
có thể trả về một chuỗi làm đố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 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ó tại http: // localhost: 60227 / Home / AutoProperty