从控制器返回一个带有JSON字符串的视图.净MVC
本文关键字:字符串 JSON 视图 MVC 一个 返回 控制器 | 更新日期: 2023-09-27 18:05:53
我是ASP新手。净MVC。在我的应用程序中的用户身份验证后,我重定向到controller/action
。在该操作中,我从服务中获取一些json数据。
我想把字符串数据传递给视图,然后用javascript操作json。注意:我谈论的是字符串,而不是模型。在Webforms中,
我通常会有一个页面范围的字符串变量,如:string _json
。然后将该var设置为服务返回的json。然后在我的标记页,我要写上:
<script>
var data = <%_json%>;
etc..
</script>
是否有办法做到这一点在ASP。净MVC吗?:
控制器public async Task<ActionResult> Index()
{
string data = await _myService.GetList();
return View(model); //here I want my view to know about data
}
视图<script>
var json = @data //something like this?
</script>
将控制器代码更改为:
public async Task<JsonResult> Index()
{
string data = await _myService.GetList();
return Json(new
{
JsonData = data ,
Status = true
}, JsonRequestBehavior.AllowGet);
}
将控制器代码更改为:
public async Task<JsonResult> Index()
{
string data = await _myService.GetList();
return Json(data, JsonRequestBehavior.AllowGet);
}
如果您的GetList
方法返回正确的json字符串,那么只需使用ViewBag
:
public async Task<ActionResult> Index()
{
ViewBag.SomeData = await _myService.GetList();
return View();
}
<<p> 视图/strong> <script>
var json = @ViewBag.SomeData ;
</script>
在其他情况下,你应该实现另一个方法,这将导致正确的json字符串,例如@Sarang版本将返回正确的字符串。用法:
<script>
var json = @Html.Action("YourMethod", "YourController") ;
</script>
这个也可以。作为字符串对象的模型
<script>
var data = @Html.Raw(Model)
</script>