ในการโทร AJAX ของฉันฉันต้องการคืนค่าสตริงกลับไปที่หน้าการโทร
ฉันควรใช้ActionResult
หรือส่งคืนสตริงหรือไม่
ในการโทร AJAX ของฉันฉันต้องการคืนค่าสตริงกลับไปที่หน้าการโทร
ฉันควรใช้ActionResult
หรือส่งคืนสตริงหรือไม่
คำตอบ:
คุณสามารถใช้ContentResult
เพื่อส่งกลับสตริงธรรมดา:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
โดยผลตอบแทนที่เริ่มต้นtext/plain
ในฐานะcontentType นี่เป็นภาระที่มากเกินไปดังนั้นคุณสามารถทำสิ่งต่อไปนี้
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResult
ไม่ก่อนที่จะตั้งค่าif (!String.IsNullOrEmpty(ContentType))
HttpContext.Response.ContentType
ฉันเห็นกับตัวอย่างแรกของคุณทั้งที่เริ่มต้นในขณะนี้หรือมันเดาการศึกษาโดยtext/html
HttpContext
MediaTypeNames.Text.Plain
MediaTypeNames.Text.Xml
แม้ว่าจะมีเพียงบางประเภท MIME ที่ใช้มากที่สุดเท่านั้น ( docs.microsoft.com/en-us/dotnet/api/… )
คุณสามารถส่งคืนสตริงได้หากคุณรู้ว่าเป็นเพียงวิธีเดียวที่จะส่งคืน ตัวอย่างเช่น:
public string MyActionName() {
return "Hi there!";
}
return
คำสั่งที่ใช้ในการส่งstring
หรือJSON
หรือView
ตามเงื่อนไขแล้วเราจะต้องใช้Content
เพื่อส่งกลับสตริง
public ActionResult GetAjaxValue()
{
return Content("string value");
}
public JsonResult GetAjaxValue()
{
return Json("string value", JsonRequetBehaviour.Allowget);
}
ตั้งแต่ปี 2020 การใช้ContentResult
ยังคงเป็นแนวทางที่ถูกต้องตามที่เสนอข้างต้นแต่การใช้มีดังนี้:
return new System.Web.Mvc.ContentResult
{
Content = "Hi there! ☺",
ContentType = "text/plain; charset=utf-8"
}
มี 2 วิธีในการส่งคืนสตริงจากคอนโทรลเลอร์ไปยังมุมมอง
เป็นครั้งแรก
คุณสามารถส่งคืนสตริงเท่านั้น แต่จะไม่รวมอยู่ในไฟล์ html ซึ่งจะเป็นสตริง jus ที่ปรากฏในเบราว์เซอร์
ที่สอง
สามารถส่งคืนสตริงเป็นวัตถุของดูผลลัพธ์
นี่คือตัวอย่างโค้ดที่ต้องทำ
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);
}
}
ในมุมมองไฟล์เพื่อเรียกใช้คุณสมบัติอัตโนมัติมันจะนำคุณไปยังมุมมองผลลัพธ์และจะส่ง
รหัส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>
ฉันเรียกใช้ที่http: // localhost: 60227 / Home / AutoProperty