MVC5 将值列表传递给 jquery var
MVC5 Pass list of values to jquery var
这可能是一个新手问题,但我只能找到相反的方向(从视图回到控制器)。
我有一个包含以下内容的 ViewModel 属性:
public class MyViewModel {
List<decimal> PossibleValues {get; set; }
}
我现在想在视图中的 jquery 变量中使用这个值列表:
@model MyViewModel
<script>
$(function() {
var vals = @Model.PossibleValues;
// should be var vals = [1.0, 2.0, 3.0];
});
</script>
将这个小数列表传递到 jquery 部分的“正确”方法是什么。我可以想到 JSONfying 数据或简单地传递一串预格式化的值,但我想知道是否有更好的方法来做到这一点?
我不会简单地在你的 cshtml 文件中混合 JavaScript,因为它很容易变得一团糟,它还取决于模型中的数据类型,一种方法是通过在脚本部分的 cshtml 页面中仅使用变量,然后调用位于另一个地方的另一个脚本,从而使内容(HTML 和 JS)彼此分开。
根据您想要的数据类型,您可以执行以下操作:
<script type="text/javascript">
var vals = @Html.Raw(Json.Encode(Model.PossibleValues));
</script>
<script type="text/javascript" src="@Url.Content("~/rootFolder/js/yourjsfile.js")"></script>
您也可以转到浏览器的控制台并输入 vals,您也可以仅尝试 Json.Encode 并查看结果,或者仅尝试 Html.Raw 以查看您的结果数据会是这样的。
这可能是一个新手问题,但我只能找到相反的方向(从视图回到控制器)。
我有一个包含以下内容的 ViewModel 属性:
public class MyViewModel {
List<decimal> PossibleValues {get; set; }
}
我现在想在视图中的 jquery 变量中使用这个值列表:
@model MyViewModel
<script>
$(function() {
var vals = @Model.PossibleValues;
// should be var vals = [1.0, 2.0, 3.0];
});
</script>
将这个小数列表传递到 jquery 部分的“正确”方法是什么。我可以想到 JSONfying 数据或简单地传递一串预格式化的值,但我想知道是否有更好的方法来做到这一点?
我不会简单地在你的 cshtml 文件中混合 JavaScript,因为它很容易变得一团糟,它还取决于模型中的数据类型,一种方法是通过在脚本部分的 cshtml 页面中仅使用变量,然后调用位于另一个地方的另一个脚本,从而使内容(HTML 和 JS)彼此分开。
根据您想要的数据类型,您可以执行以下操作:
<script type="text/javascript">
var vals = @Html.Raw(Json.Encode(Model.PossibleValues));
</script>
<script type="text/javascript" src="@Url.Content("~/rootFolder/js/yourjsfile.js")"></script>
您也可以转到浏览器的控制台并输入 vals,您也可以仅尝试 Json.Encode 并查看结果,或者仅尝试 Html.Raw 以查看您的结果数据会是这样的。