MVC/jQuery - 可以在jQuery中使用Razor变量,但不能分配给jQuery变量?

Keh*_*mme 1 asp.net-mvc jquery razor

这条线

$('.current').val(page + ' of ' + @lastPage);
Run Code Online (Sandbox Code Playgroud)

导致最后一个括号用红色边框加下划线,表示"语法错误",仅此而已.

但是,这条线

setPage(@lastPage);
Run Code Online (Sandbox Code Playgroud)

工作得非常好.

到底是怎么回事?这导致我视图中的脚本完全停止工作,而且相当令人沮丧.

请问有人对这个问题有所了解吗?

DSl*_*gle 5

当javascript看到@lastPage时它将是纯文本,因为它在服务器端进行评估.您可能希望将jQuery更改为更像这样:

$('.current').val(page + ' of @lastPage');
Run Code Online (Sandbox Code Playgroud)

要么

$('.current').val(page + ' of ' + '@lastPage');
Run Code Online (Sandbox Code Playgroud)

如果@lastPage评估为3,那么渲染的JS将如下所示

$('.current').val(page + ' of ' + 3);
Run Code Online (Sandbox Code Playgroud)

您希望它看起来像这样

$('.current').val(page + ' of 3');
Run Code Online (Sandbox Code Playgroud)

要么

$('.current').val(page + ' of ' + '3');
Run Code Online (Sandbox Code Playgroud)