Nap*_*lga 16 asp.net-mvc jquery viewbag
我只想问,有没有办法使用jquery动态设置viewbag值?我在我的脚本中尝试此代码,
$(".btn").on("click",function(){
@ViewBag.Id = $(this).attr("id")
});
Run Code Online (Sandbox Code Playgroud)
我不知道它是否正确,但当我尝试运行我的MVC 3项目时,这个错误出现在我的firebug中
Syntax Error
= $(this).attr("id")
Run Code Online (Sandbox Code Playgroud)
请帮忙.谢谢
Fla*_*ter 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")
});
Run Code Online (Sandbox Code Playgroud)
将被发送到浏览器
$(".btn").on("click",function(){
5 = $(this).attr("id")
});
Run Code Online (Sandbox Code Playgroud)
由于您的浏览器只能看到最后一部分,因此它在Javascript中没有意义.在您的情况下,语法错误,它只是意味着您的变量尚未初始化,并且您正在尝试访问a null.