从razor访问javascript变量

时间:2015-08-10 15:44:00

标签: javascript asp.net-mvc razor

在我的模型中,有一个名为Feeds的字典。我需要从javascript代码中访问Feeds中的特定项目:

 var feedID = $sourceRow.attr('id');
 var jobDescriptionMaximumLength = @Model.Feeds[Convert.ToInt32(<text>feedID</text>)];

这不起作用。你能取悦我做错了什么以及什么是正确的做法?

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是将字典(您的Feeds属性值)分配给javascript变量,然后您可以在客户端脚本中访问它。

如果您的Feeds媒体资源属于Dictionary<int,string>,则您的投放资产属性中会出现类似内容。

{1: "StringVal1", 2: "StringVal2"}

从这个javascript对象中,您可以使用密钥访问您的字典项值。

剃刀视图的代码将是

@using Newtonsoft.Json
@model YourNameSpaceHere.YourViewModelTypeHere

<script type="text/javascript">

    $(function() {

     var feeds = @Html.Raw(JsonConvert.SerializeObject(Model.Feeds));

     console.log(feeds);

     var feedId = 2; // replace with real value to check
     alert(feeds[feedId]);
    });
</script>

或者,您可以考虑使用feed id进行Ajax调用,以获得返回所需复杂对象的端点。