我只想问一下,有没有办法使用jquery动态设置viewbag值? 我在我的脚本中尝试了这段代码,
$(".btn").on("click",function(){
@ViewBag.Id = $(this).attr("id")
});
我不知道它是否正确但当我尝试运行我的MVC 3项目时,此错误出现在我的firebug中
Syntax Error
= $(this).attr("id")
请帮助。感谢
答案 0 :(得分:42)
您误解了ViewBag的工作原理。
在MVC中工作,并打开网页时,这就是(大致)发生的事情:
当您的浏览器获取该页面时,您的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
。