Dalam panggilan AJAX saya, saya ingin mengembalikan nilai string kembali ke halaman panggilan.
Haruskah saya menggunakan ActionResult
atau mengembalikan string?
Dalam panggilan AJAX saya, saya ingin mengembalikan nilai string kembali ke halaman panggilan.
Haruskah saya menggunakan ActionResult
atau mengembalikan string?
Jawaban:
Anda bisa menggunakan ContentResult
untuk mengembalikan string:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
secara default mengembalikan a text/plain
sebagai contentType . Ini kelebihan beban sehingga Anda juga dapat melakukan:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResult
tidak if (!String.IsNullOrEmpty(ContentType))
sebelum pengaturan HttpContext.Response.ContentType
. Saya melihat text/html
dengan contoh pertama Anda, apakah itu default sekarang atau itu merupakan tebakan terpelajar oleh HttpContext
.
MediaTypeNames.Text.Plain
atau 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!";
}
return
pernyataan yang digunakan untuk mengirim salah satu string
atau JSON
atau View
berdasarkan kondisi maka kita harus menggunakan Content
untuk mengembalikan string.
public ActionResult GetAjaxValue()
{
return Content("string value");
}
Pada tahun 2020, penggunaan ContentResult
masih 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