【问题标题】:Calling a javascript variable inside a c# code在 c# 代码中调用 javascript 变量
【发布时间】:2013-10-23 16:44:05
【问题描述】:

我的 asp.net mvc4 中有这个 Javascript 函数和剃须刀应用程序

function openbox2(formtitle, fadin) {
         var self = $(this);
         var arr = self.data('arr');
         @{
         Session["element"] = @:arr;

                             }
         var box = document.getElementById('box');
         document.getElementById('shadowing').style.display = 'block';

         var btitle = document.getElementById('boxtitle');
         btitle.innerHTML = formtitle;

         if (fadin) {
             gradient("box", 0);
             fadein("box");
         }
         else {
             box.style.display = 'block';
         }
     }

html部分代码

<td> 
         <a href="#" onClick="openbox2('Validation de concept technique', 1)" data-arr="@fa.Id_element">Donner votre avis</a>. 
        </td>

我的问题是指令 Session["element"] = @:arr 不起作用,即使我将其替换为 Session["element"] = "@:arr"

我该如何解决这个问题?

【问题讨论】:

  • 你的js函数是在cshtml文件中还是在外部javascript文件中?
  • 需要使用 ajax 或套接字来执行此操作。
  • 您是否尝试通过 JavaScript 设置会话变量?那根本行不通
  • js函数在同一个cshtml文件中
  • @Lamloumi - 设置一个接受相同结构的控制器,然后使用 ajax 将变量发布到那里,这将允许您在 Session 中存储来自客户端的内容。但是,这似乎是一个 XY 问题。将此信息存储在 Session 或应用程序范围内的目的是什么?

标签: javascript jquery asp.net asp.net-mvc-4 razor


【解决方案1】:

你做不到。

可以在来自服务器端的 javascript 中设置值,但不能以其他方式进行。

你可以做的是在页面加载时使用这个数组发送一个 ajax 请求,所以它会保存在服务器端的 Session 变量中。

类似:

$(function(){
    $.post('/saveArray', {items:arr});
});

希望有帮助。

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多