【问题标题】:use knockout js observable value as variable使用淘汰赛 js 可观察值作为变量
【发布时间】:2016-02-04 19:08:34
【问题描述】:

我有以下:

<span data-bind="text: total"></span> 

从淘汰赛 js,我如何将这个值传递给后面的代码?

【问题讨论】:

  • 你不能......如果你想将它传递给服务器,你要么必须在 &lt;form&gt; (在某些有效字段中)中使用它并提交 - 要么你必须制作类似AJAX 调用(在淘汰赛中可能使用 jquery/post,get,ajax)并从那里传递...这是 webforms 还是 mvc?
  • 好的,我可以存储为会话变量吗?
  • 同样的事情 - 会话变量在服务器上(在请求之间) - 在服务器呈现 html 之后(很长时间),客户端上发生了淘汰、绑定等... WinForms 对吗? ...看起来这只是我的意见,但一个诚实的建议:放弃这个并做 MVC - 你永远不会对使用 winforms 进行 Web 开发有感觉 - 它给你一个完全虚假的思维模型,正在发生的事情跨度>
  • 你能做的就是把它放到客户端的cookies中(通过观察你在JS中的total observable)并在服务器上查看它们......但这和这些东西一样糟糕webforms 用于模拟状态

标签: c# knockout.js


【解决方案1】:

Carsten 的 ajax 调用很准确。您将有一个事件,可能来自一个按钮单击,其功能类似于,

//html

//... form that adds to total
<span data-bind="text: total"></span> 
<button data-bind="click: mySubmit">Submit Total</button>

//js controller
self.total = 0;

self.mySubmit = function(){
 $.ajax({
  type: "POST",
  url: myBackendControllerUrl,
  data: self.total,
  success: function(){console.log("success!");},
  dataType: JSON
 });
}

Knockout 是一个客户端框架。要将数据从客户端获取到服务器,您需要类似上述内容。您需要在服务器端创建一个可以接收此信息的控制器。我希望这有助于您入门。

【讨论】:

    猜你喜欢
    • 2012-07-07
    • 2018-03-30
    • 2014-11-05
    • 2012-09-08
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多