Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t将ViewBag数据传递给AngularJS_Angularjs_Asp.net Mvc - Fatal编程技术网

Can';t将ViewBag数据传递给AngularJS

Can';t将ViewBag数据传递给AngularJS,angularjs,asp.net-mvc,Angularjs,Asp.net Mvc,我有一个控制器: public ActionResult Edit(int id) { ViewBag.IsComplete = false; return View(dbContext.Users.Where(user => user.Id == id)) } 以及相应的观点: @model User @{ ViewBag.Title = "Edit User"; Layout = "~/Views/Shared/_PopupLayout.cshtml

我有一个控制器:

public ActionResult Edit(int id) {
    ViewBag.IsComplete = false;
    return View(dbContext.Users.Where(user => user.Id == id))
}
以及相应的观点:

@model User

@{
    ViewBag.Title = "Edit User";
    Layout = "~/Views/Shared/_PopupLayout.cshtml";
}

<p>@ViewBag.IsComplete</p>

<div ng-init="init(isComplete: @ViewBag.IsComplete)" />
@模型用户
@{
ViewBag.Title=“编辑用户”;
Layout=“~/Views/Shared/\u PopupLayout.cshtml”;
}
@ViewBag.IsComplete


ViewBag.IsComplete的第一个实例(在
标记中)发出正确的值。第二个发射空。有谁能告诉我这里发生了什么,以及如何修复它,以便第二个@ViewBag.IsComplete与第一个发出相同的信息吗?

使用
@Html.Raw
返回未编码的Html标记

<div ng-init="init(isComplete: @Html.Raw(ViewBag.IsComplete))" />

在ng init绑定中使用
@Html.Raw(ViewBag.IsComplete)

您需要将bool值转换为字符串,您可以按照其他答案中的建议使用
@Html.Raw()
,或者只需执行
@ViewBag.IsComplete.ToString()

但是,当您在C#中将bool值转换为字符串时,它将被转换为“True”或“False”,但Javascript不会将它们识别为bool值。因此,您还必须将其转换为小写。以下是您需要做的:

<div ng-init="init(isComplete: @ViewBag.IsComplete.ToString().ToLower())" />


试试
@Html.Raw(ViewBag.IsComplete)
效果很好。请将此作为答复提交,我将接受。谢谢。事实上,在我实施丹迪的答案后,我几乎立刻发现了这一点。我的解决方案是将IsComplete设置为“true”或“false”,然后使用@HTml.Raw将其写出。它只用于初始化angularjs控制器,所以我不在乎它是否是“真正的”布尔值。