【问题标题】:How to pass JQuery variables to Razor?如何将 JQuery 变量传递给 Razor?
【发布时间】:2012-02-21 18:48:04
【问题描述】:

我有 JQuery 代码:

$(document).ready(function() {
    $('.LikeArea').click(function() {
        var num = parseInt(this.html());
        num++;
        elem.html(num);     
    });
});

现在我想将 jQuery 变量 num 传递给 Razor,以便我可以使用新值更新数据库。

【问题讨论】:

标签: jquery variables razor


【解决方案1】:

Razor 是一个视图引擎。当您说要将 jQuery 变量传递给 Razor 时,不确定您的意思是什么,因为 Razor 在任何 javascript 之前在服务器上运行。您可以使用 AJAX 向服务器端模板发送请求:

$(document).ready(function() {
    $('.LikeArea').click(function () {
        var num = parseInt(this.html());
        num++;
        elem.html(num);     
        $.ajax({
            url: '/foo.cshtml',
            type: 'POST',
            data: { num: num },
            success: function(result) {
                // TODO: do something with the result returned by the 
                // foo.cshtml template
            }
        });
    });
});

这会将 AJAX 请求发送到 /foo.cshtml 模板,您可以在其中获取变量,如下所示:

@{
    var num = Request["num"];
}
...

【讨论】:

  • 感谢您的快速回复。但我对 MVC 并不是很熟悉。我正在使用 WebMatrix。你能告诉我如何使用 WebMatrix 获得相同的结果吗?
  • @Xoni,哦,对不起,我以为你在使用 ASP.NET MVC。我已更新我的答案以提供网页示例。
  • @DarinDimitrov--我同意你的方法,但你认为 OP 使用 jQuery 的 `.post()' 会更好吗?它做同样的事情,但可能更直接一点。真的只是我的意见。
  • @MatthewPatrickCashatt,肯定可以在这种情况下使用简写 $.post。
  • @DarinDimitrov--再说一次,如果 OP 不熟悉 jQuery,那么使用 .ajax() 也会先教零件和零件,这对那个人有好处。无论如何,干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2018-12-14
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 2014-12-02
相关资源
最近更新 更多