gpt4 book ai didi

jquery - 使用 Jquery 设置 ViewBag 中的值

转载 作者:行者123 更新时间:2023-12-03 21:53:27 27 4
gpt4 key购买 nike

我只是想问,有没有办法使用jquery动态设置viewbag值?我在我的脚本中尝试这段代码,

$(".btn").on("click",function(){
@ViewBag.Id = $(this).attr("id")
});

我不知道它是否正确,但是当我尝试运行我的 MVC 3 项目时,此错误出现在我的 firebug 中

Syntax Error
= $(this).attr("id")

请帮忙。谢谢

最佳答案

您误解了 ViewBag 的工作原理。

在 MVC 中工作时,您打开一个网页,(大致)会发生以下情况:

  1. FooController 的“Index”方法已运行。最后返回一个View。
  2. 然后,您的 MVC 应用程序将为您找到 View ,并根据在相关 .aspx 文件中找到的 HTML 开始渲染它。如果程序遇到诸如“@ViewBag.Id”之类的项目,它基本上会用“.Id”值进行字符串替换。 (它比这更复杂一些,但为了论证,它基本上进行了字符串替换)。
  3. 渲染后,HTML 文档将发送到您的浏览器,然后浏览器会显示该文档。

当您的浏览器获取该页面时,您的 ViewBag 基本上已经“超出范围”了。这是因为您的 ASP (MVC) 应用程序使用 ViewBag,但 Javascript 仅在 Web 浏览器文档中具有作用域(这是应用程序返回到浏览器的 HTML 代码,>在 ViewBag 超出范围之后。Javascript 不是 MVC 应用程序的一部分,只是生成的网页的一部分。

所以简短的回答是,不,你不能那样做。尝试将其视为进行内联字符串替换。您只能将 ViewBag 值放入 HTML 页面,反之则不然。

假设你的Id是5,aspx文件中的代码如下:

$(".btn").on("click",function(){
@ViewBag.Id = $(this).attr("id")
});

将作为

发送到浏览器
$(".btn").on("click",function(){
5 = $(this).attr("id")
});

由于您的浏览器只能看到最后一部分,因此它在 Javascript 中没有意义。在您的情况下,出现语法错误,仅意味着您的变量尚未初始化,并且您正在尝试访问 null

关于jquery - 使用 Jquery 设置 ViewBag 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com