在Asp.net MVC Razor语法中使用JavaScript变量

时间:2016-10-06 15:56:51

标签: javascript asp.net asp.net-mvc razor

如何在ASP.NET MVC Razor指令中使用JavaScript变量?

示例:

function updChart(_IndId) {

    @foreach (var d in Model.Where(p => p.IndId.Equals(_IndId)))

...
}

我无法使用_IndId变量。知道怎么用吗?

2 个答案:

答案 0 :(得分:1)

你不能这样做。 Razor视图在服务器上编译和执行,其结果是HTML页面,然后返回到客户端(浏览器)。 JavaScript在浏览器中运行,允许您使用已从服务器返回的HTML页面的DOM。

答案 1 :(得分:1)

您不能在C#中使用Javascript变量,因为只有在呈现C#/ Razor后才能使用javascript代码。

你可以做的是将模型保存在Javascript数组中,然后在Javascript中执行foreach循环:

var model = [];
@foreach (var item in Model)
{
    @:model.push({
        @:ID: '@item.ID',
        @:Property1: '@item.Property1',
        @:Property2: '@item.Property2',
        @:Property3: '@item.Property3',
    @:});
}

console.log(model);
// here you can filter and do the foreach in Javascript, because your model is available as a Javascript array