我是ASP.NET MVC的新手。在我的应用程序中进行用户身份验证后,我将重定向到controller/action
。在该操作中,我从服务中获取一些json数据。
我想将该字符串数据传递给视图,然后使用javascript操作json。注意:我说的是字符串,而不是模型。在Webforms中,
我通常会有一个页面范围的字符串变量,如:string _json
。然后我将该var设置为我的服务返回的json。然后在我的标记页面中我会:
<script>
var data = <%_json%>;
etc..
</script>
有没有办法在ASP.NET 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>
答案 0 :(得分:0)
如果您的GetList
方法返回正确的json字符串,那么只需使用ViewBag
:
<强>控制器强>
public async Task<ActionResult> Index()
{
ViewBag.SomeData = await _myService.GetList();
return View();
}
查看强>
<script>
var json = @ViewBag.SomeData ;
</script>
在其他情况下,您应该实现另一个方法,这将导致正确的json字符串,例如@Sarang版本将返回正确的字符串。用法:
<script>
var json = @Html.Action("YourMethod", "YourController") ;
</script>
答案 1 :(得分:0)
将控制器代码更改为:
public async Task<JsonResult> Index()
{
string data = await _myService.GetList();
return Json(data, JsonRequestBehavior.AllowGet);
}
答案 2 :(得分:0)
将控制器代码更改为:
public async Task<JsonResult> Index()
{
string data = await _myService.GetList();
return Json(new
{
JsonData = data ,
Status = true
}, JsonRequestBehavior.AllowGet);
}
答案 3 :(得分:0)
这也是可行的。建模为字符串对象
<script>
var data = @Html.Raw(Model)
</script>