如何将 ViewData 从 Controller 传递到我的 JS
How to pass ViewData from Controller to my JS
我有以下场景,我将数据从我的控制器传递到视图
控制器:
public ActionResult Create(string ID)
{
if (ID!= null)
{
int nid = Convert.ToInt32(ID);
DataWiz NDW = new DataWiz();
ViewData["Filter"] = NDW.Filter(nid);
}
return View();
}
VIEW(剃刀):
@{
var Filter = ViewData["Filter"];
}
@section Create(//this is rendered in from Layout)
{
<script src="@Url.Content("~/Scripts/Create.js")" type="text/javascript"></script>
}
当我调试视图时,我能够在 Filter 中看到数据,但是我如何在文档就绪函数中将其获取到我的 JS。
JAVASCRIPT:
$(document).ready(function () {
var test = '<%= ViewData["Filter"] %>';
});
我从 Layout 渲染了我的 js,但没有在我的 razor 视图中使用标签
这是从控制器获取 VIEWDATA 到 JS 的正确方法吗?如果是这样,我做错了什么?
使用如下:
<script type="text/javascript">
var test = <%= serializer.Serialize(ViewData["Filter"]) %>;
</script>
或
也许这个能帮到你。
Solution 1
Solution 2
经过几次尝试,我发现这是在我的 JS 中访问 ViewData 或 ViewBag 的一种方式
我使用了 KO JS optionsAfterRender 如下
VIEW
<select data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Filter.SubTypeID);}"></select>
JS
在视图模型中
self.setOptionST = function (x) {
//here we can do whatever is intended to in my case to set the initial value in dropdown
self.selectedSubType(x);
};
我有以下场景,我将数据从我的控制器传递到视图
控制器:
public ActionResult Create(string ID)
{
if (ID!= null)
{
int nid = Convert.ToInt32(ID);
DataWiz NDW = new DataWiz();
ViewData["Filter"] = NDW.Filter(nid);
}
return View();
}
VIEW(剃刀):
@{
var Filter = ViewData["Filter"];
}
@section Create(//this is rendered in from Layout)
{
<script src="@Url.Content("~/Scripts/Create.js")" type="text/javascript"></script>
}
当我调试视图时,我能够在 Filter 中看到数据,但是我如何在文档就绪函数中将其获取到我的 JS。
JAVASCRIPT:
$(document).ready(function () {
var test = '<%= ViewData["Filter"] %>';
});
我从 Layout 渲染了我的 js,但没有在我的 razor 视图中使用标签
这是从控制器获取 VIEWDATA 到 JS 的正确方法吗?如果是这样,我做错了什么?
使用如下:
<script type="text/javascript">
var test = <%= serializer.Serialize(ViewData["Filter"]) %>;
</script>
或
也许这个能帮到你。
Solution 1
Solution 2
经过几次尝试,我发现这是在我的 JS 中访问 ViewData 或 ViewBag 的一种方式
我使用了 KO JS optionsAfterRender 如下
VIEW
<select data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Filter.SubTypeID);}"></select>
JS
在视图模型中
self.setOptionST = function (x) {
//here we can do whatever is intended to in my case to set the initial value in dropdown
self.selectedSubType(x);
};