В моем вызове AJAX я хочу вернуть строковое значение на вызывающую страницу.
Должен ли я использовать ActionResult
или просто вернуть строку?
В моем вызове AJAX я хочу вернуть строковое значение на вызывающую страницу.
Должен ли я использовать ActionResult
или просто вернуть строку?
Вы можете просто использовать ContentResult
, чтобы вернуть простую строку:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
по умолчанию возвращает a text/plain
как contentType. Это перегружает, поэтому вы также можете:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
Вы также можете просто вернуть строку, если знаете, что единственное, что метод когда-либо будет возвращать. Например:
public string MyActionName() {
return "Hi there!";
}
public ActionResult GetAjaxValue()
{
return Content("string value");
}
public JsonResult GetAjaxValue()
{
return Json("string value", JsonRequetBehaviour.Allowget);
}
есть 2 способа вернуть строку из контроллера в представление
первый
вы можете вернуть только строку, но не включаться в html файл в строке браузера будет отображаться строка jus
второй
может возвращать строку как объект вида Result
вот примеры кода для этого
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);
}
}
в режиме просмотра AutoProperty он перенаправит вас в представление Результат и отправит 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