【问题标题】:Use JavaScript Variable in Asp.net MVC Razor syntax在 Asp.net MVC Razor 语法中使用 JavaScript 变量
【发布时间】:2017-02-15 11:18:59
【问题描述】:

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

例子:

function updChart(_IndId) {

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

...
}

我不能使用_IndId 变量。知道怎么用吗?

【问题讨论】:

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


【解决方案1】:

你不能在 C# 中使用 Javascript 变量,因为 javascript 代码只有在 C#/Razor 渲染后才可用。

你可以做的,是将模型保存在一个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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 那么我的选择是什么?
    • 如果您需要部分更新页面上的某些内容,您必须向服务器发出 AJAX 请求,获取数据并将其应用于页面的特定部分。
    • Razor 是一个通用模板引擎,可以适应返回 JavaScript。我认为这是未来可能会解决的一个领域。我想没有什么能阻止你创建一个预处理 JavaScript 文件的 MVC 端点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多