【问题标题】:Add Session using Javascript in MVC 4 Razor在 MVC 4 Razor 中使用 Javascript 添加会话
【发布时间】:2014-04-28 09:34:33
【问题描述】:

我正在编写上传文件的应用程序,首先我需要一些文件存储配置 我阅读了前十行并将它们展示给用户,用户提供配置,我将上传文件。

我试过了

<script>
document.getElementById('file').addEventListener('change', readSingleFile, false);
function readSingleFile(evt) {
    var FileBlock = "";   
    var contents="";
    var f = evt.target.files[0];
    if (f) {
        var r = new FileReader();
        r.onload = function (e) {
            contents = e.target.result;
            var Rows = contents.toString().split("\n", 10);
            FileBlock = Rows[0];
             for (var i = 1 ; i < Rows.length; i++) {
                 FileBlock += "|" + Rows[i];
             }
             alert(contents);

            @{
                Session["Test"] = @:contents+"";
             }

            OpenDockPanelBySumbitForm("ImporterPanel", "form",FileBlock);
            Hide_ContentZone_Panel();
        }
        r.readAsText(f);      
    } else {
        alert("Failed to load file");
    }
}

这段代码不起作用

@{
   Session["Test"] = @:contents+"";
 }

如果有人可以提供帮助,我将不胜感激,感谢参与。

【问题讨论】:

  • 您似乎正在尝试将客户端值设置为服务器端对象,这没有任何意义。
  • 它比你想象的更复杂 javascript 阻止获取文件路径,我不想上传文件,除非我得到用户配置,所以我需要访问文件内容,一种方式存储会话中的文件或 cookie 用户中的 cookie 问题可能会禁用 cookie,因此网站将无法完成此任务。如果您对访问文件内容有一个想法,那就太好了。感谢您的关注。

标签: c# javascript .net asp.net-mvc-4 razor


【解决方案1】:

Asp.net 代码在 Javascript 中运行基于服务器的动态工作。 JavaScript 不能基于服务器为变量赋值。但是,保留您可以使用的隐藏变量;

http://i.hizliresim.com/aq336d.png

<input type="hidden" id="hdnsession" name="sessionData" value=" @ViewBag.session??"" " />
public ActionResult test(string sessionData){
Session["Test"] = sessionData;
ViewBag.session = Session["Test"];
return View();
}

【讨论】:

    【解决方案2】:

    我发现没有办法这样做,因为C#代码在Javascript之前编译,所以C#将无法看到Javascript代码而相反的可能。

    解决的一种方法是将您的脚本移动到另一个文件夹 -plugins - 以确保它会首先编译。

    check Source here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 2013-12-24
      • 2016-01-24
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 2015-01-14
      • 2012-09-15
      相关资源
      最近更新 更多