Dalam panggilan AJAX saya, saya ingin mengembalikan nilai string kembali ke halaman panggilan.
Haruskah saya menggunakan ActionResultatau mengembalikan string?
Dalam panggilan AJAX saya, saya ingin mengembalikan nilai string kembali ke halaman panggilan.
Haruskah saya menggunakan ActionResultatau mengembalikan string?
Jawaban:
Anda bisa menggunakan ContentResultuntuk mengembalikan string:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResultsecara default mengembalikan a text/plainsebagai contentType . Ini kelebihan beban sehingga Anda juga dapat melakukan:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResulttidak if (!String.IsNullOrEmpty(ContentType))sebelum pengaturan HttpContext.Response.ContentType. Saya melihat text/htmldengan contoh pertama Anda, apakah itu default sekarang atau itu merupakan tebakan terpelajar oleh HttpContext.
MediaTypeNames.Text.Plainatau MediaTypeNames.Text.Xml. Meskipun hanya mencakup beberapa jenis MIME yang paling banyak digunakan. ( docs.microsoft.com/en-us/dotnet/api/… )
Anda juga bisa mengembalikan string jika Anda tahu bahwa satu-satunya metode yang akan kembali. Sebagai contoh:
public string MyActionName() {
return "Hi there!";
}
returnpernyataan yang digunakan untuk mengirim salah satu stringatau JSONatau Viewberdasarkan kondisi maka kita harus menggunakan Contentuntuk mengembalikan string.
public ActionResult GetAjaxValue()
{
return Content("string value");
}
Pada tahun 2020, penggunaan ContentResultmasih merupakan pendekatan yang tepat seperti yang diusulkan di atas , tetapi penggunaannya adalah sebagai berikut:
return new System.Web.Mvc.ContentResult
{
Content = "Hi there! ☺",
ContentType = "text/plain; charset=utf-8"
}
ada 2 cara untuk mengembalikan string dari controller ke view
pertama
Anda bisa mengembalikan hanya string tetapi tidak akan dimasukkan dalam file html itu akan menjadi string hanya muncul di browser
kedua
dapat mengembalikan string sebagai objek Lihat Hasil
di sini adalah contoh kode untuk melakukan ini
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);
}
}
dalam pandangan file untuk menjalankan AutoProperty itu akan mengarahkan Anda ke Hasil pandangan dan akan mengirimkan s
kode ke tampilan
<!--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>
saya menjalankannya di http: // localhost: 60227 / Home / AutoProperty