【问题标题】:How to use Model in Javascript (C# MVC ASP.NET)如何在 Javascript 中使用模型(C# MVC ASP.NET)
【发布时间】:2017-04-13 18:14:07
【问题描述】:

我在视图中有一个 .cshtml 文件,我正在尝试在脚本中使用模型:

<script>
    function back()
    {
        var i = 0;
        console.log(@Model[i].Id;)

    }
</script>

它表示名称“i”在当前上下文中不存在。

<script>
    function back()
    {
        console.log(@Model[0].Id;)

    }
</script>

这很好用。我怎么能得到i。模型的元素?

【问题讨论】:

  • 可以展示模型类吗?
  • 如果您正在迭代模型(for (int i=0; ....),那将是您的 i

标签: javascript c# asp.net


【解决方案1】:

您正在尝试混合客户端和服务器端代码,这确实不是一个好主意,但您可以通过以下方式解决它以使其工作:

@{
   int i = 0;
}
<script>
    function back()
    {

        console.log(@Model[i].Id;)

    }
</script>

这对你有用,但正如我所说,你不应该做这种事情。

【讨论】:

  • 谢谢。但是如果我是正确的,则不能在脚本中更改“i”,或者可以吗?
  • 你不能,你到底想做什么,正如我所说,混合服务器和客户端代码不是一个好主意,剃刀在执行 javascript 之前在服务器端执行
  • 我正在尝试使用 cshtml 中的脚本制作画廊。 'i' 代表我。必须显示图像。有一个带有 onclick="back()" 的“上一张图片”。函数 back() 应该减少 var i 并将 img src 设置为 Model[i].NewImage (这是图像的来源)。
  • 需要使用ajax调用服务端返回json或者部分视图
  • 您能告诉我如何在不使用 ajax 的情况下使用更改的参数重新加载部分视图吗?或者这也是不可能的?
【解决方案2】:

你不能那样做。 Console.log 是 javascript,因此它在页面呈现后在前端运行,因此您不再可以访问您的 MVC 模型

您应该将您的模型保存到 javascript 上的一个数组中,以便在重新渲染页面后加载它。

function back()
{
    var i = 0;
    var jsArray = @Html.Raw(Json.Serialize(Model));
    console.log(jsArray[i].Id;)

}

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签