【问题标题】:Calling JQuery From Code Behind - Any Other Solution从代码后面调用 JQuery - 任何其他解决方案
【发布时间】:2011-01-25 05:15:55
【问题描述】:

我在 MVC 2 中工作。我想从后面的代码(即从控制器)中调用 JQuery 函数...我的 JQuery 函数是...

<script type="text/javascript">
$(function () {
    var a = document.getElementById("HidStatus").value;
    var b = parseInt(a);
    $("#progressbar").progressbar({
        value: b,
        max: 100
    });
});

<div id="progressbar" style="height: 8px; float: left; padding: .3%; margin-right: 274px;
                        margin-left: 160px; width: 350px;">
                    </div>
                    <div id="Div1" style="float: left; margin-left: 300px; margin-right: 100px; font-weight: bold">
                        <%= Html.Hidden("HidStatus", (double)ViewData["StatusBar"])%>
                        <%= Html.Label("Status - " + Convert.ToString(ViewData["StatusBar"] + "% Completed"))%>
                    </div>

我应该在我的控制器中调用它。我的控制器将...

  [AcceptVerbs(HttpVerbs.Post)]
   public ActionResult ProvideDetails(FormCollection formCollection)
  {       
    //Here i should call the JQuery Function
     return PartialView("Details", empDetails);
  }

这是我的 Ajax 相关部分...

如何做到这一点......

【问题讨论】:

    标签: jquery asp.net-mvc-2


    【解决方案1】:

    后面的代码在服务器上运行。运行时,页面还没有交付给用户,也没有在他们的浏览器中呈现。

    这意味着当您无法访问 jQuery 代码时,因为它仅在客户端上运行。

    即使它可以运行,您也无法使用document.getElementById,因为它在网页中获取了一个尚未呈现的元素。

    【讨论】:

    • 谢谢..但是,我想要的是,我正在处理进度条的概念。一旦我保存数据,进度条就会消失。我想在同一页面中保留进度条...“我已经更新了我的以上代码”
    【解决方案2】:

    如果我理解正确.. 用户正在执行某项操作,您想在服务器上执行某项操作,然后更新进度条以向用户指示已发生某事。

    我认为你有几个选择。

    使用 jQuery 帖子

    您可以使用 jQuery 调用控制器操作,然后根据响应更新您的进度条。进度条更新回调函数将被放置到“成功”(见下文)

    $.ajax({
       type: 'POST',
       url: url,
       data: data,
       success: success
       dataType: dataType
    });
    

    jQuery API documentation

    使用 Ajax.BeginForm

    看来您现在正在使用 PartialView。您可以使用 Ajax 表单,以便您可以提供在 post 完成时调用的函数。 Ajax.BeginForm 包含 Success 选项,您可以在其中提供 Post 成功完成时调用的函数。在该功能中,您可以更新进度条。

    Here is an example如何使用Ajax.BeginForm

    我希望这将给出一个如何实施适当解决方案的想法。

    【讨论】:

    • 你的理解是正确的......在你的第一个解决方案中,我应该在哪里调用我的进度条脚本......?请详细解释我......
    • 查看这个问题,定义了一个 OnSuccess。你必须把你的函数放在那里,不带括号。 stackoverflow.com/questions/695729/…
    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    相关资源
    最近更新 更多