【问题标题】:Pass Variables from Jquery/Javascript to a c# application将变量从 Jquery/Javascript 传递到 c# 应用程序
【发布时间】:2013-05-18 16:21:33
【问题描述】:

我是将 j-stuff 连接到 c# 应用程序的新手。 我的问题是,在 Web 界面上,用户填写 3 个文本框并按下 go 按钮。 正在执行此操作的 javascript 如下:

$("#go").on('click', function(e) {
e.preventDefault();

var name = $("#comp").val();
var qty = $("#qty").val();
var value = $("#VoucherVal").val();

});

现在我的问题是,我希望在 c# 应用程序中获取这 3 个变量的值,以便我可以按照自己的方式处理它们。

你能帮帮我吗?

问候 M

【问题讨论】:

  • 使用隐藏输入类型并使用 $('#hidden1').val(value1); 将这些值写入那些隐藏字段然后您从这些 hdden 字段中获取服务器端的值。
  • 如何从 c# 访问它们?
  • 你的问题太笼统了。 Frank59 给了你一个很好的解决方案。但 MVC 并不是唯一的解决方案。您的方案的主要元素是:Javascript 客户端、服务器端 C# 处理程序。客户端应该对处理程序执行 AJAX 调用,传递正确的变量及其值。根据您的解决方案架构,处理程序可以以不同的方式实现(MVC、.net HttpHandler、JayRock 处理程序等)。我建议您定义您的解决方案,然后发布更具体的问题。
  • 最好的解决方案是使用hiddenfield

标签: c# javascript jquery interface


【解决方案1】:

为什么不将值发布到页面?

如果您将表单发布到页面,您可以阅读它们:

var comp = Request.Form["comp"];

您需要将 name="comp" 添加到您的字段中。

如果您使用查询字符串(如url.aspx?comp=value)传递它们,则可以读取该值:

var comp = Request.QueryString["comp"];

【讨论】:

    【解决方案2】:

    如果您想在服务器上使用您的客户端数据,您需要向服务器发出请求。您可以提出 GET 请求并在 Url 中添加参数,例如 'MyUrl?name='+name.toString()+'&qty='+qty.toString()&...POST 请求(例如将数据保存在隐藏字段中)。 你也可以发出ajax请求(例如http://api.jquery.com/jQuery.ajax/

    使用 jquery ajax 获取数据的简单示例: //javascript。获取 JSON 的同步请求

    var childrenApprovingInfoUrl = this._PrefixUrl + "DataService/ChildrenApprovingInfo?reportFormId=" + reportKey;
    
    var requestResult = $.ajax({
        type: "GET",
        url: childrenApprovingInfoUrl,
        dataType: "json",
        async: false,
        cache: false
    
    });
    

    //C# (MVC3) 返回 JSON

    public ActionResult ChildrenApprovingInfo(int reportFormId)
        {
            MyResult result=new MyResult();
            //some actions. return JSON
            return Json(result,JsonRequestBehavior.AllowGet);
        }
    

    您可以看到我从客户端获取参数reportFormId,在服务器逻辑中使用它并将操作结果返回给客户端。

    【讨论】:

    • 请给我更详细的解释。
    • 您在服务器端使用 MVC 或 ASP.NET?
    • 我只使用 c# 编码,它将在带有 webserver 的 windows CE 控制器上使用
    • 您需要访问请求信息。我不知道它在 Windows CE 中是如何工作的。当您获得请求信息时,您可以从示例中访问 reportFormId
    【解决方案3】:

    所有这些值仅适用于客户端。要达到 c# 的值,它位于 server 中,您必须使用这些值调用 server 。 jQuery Ajax 打电话是个好办法

    [编辑] 正如 Ash Burlaczenko 所说,此解决方案仅在您在 Web 服务器上运行 c# 应用程序时才有效。

    【讨论】:

    • 是的,该应用程序将与 Web 界面一起在 Web 服务器上运行。但是,如果可能的话,我可以更详细地解释我必须做什么。
    猜你喜欢
    • 2014-01-17
    • 2021-04-10
    • 2011-04-02
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多