Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Ajax.BeginForm中加载ElementId时不显示加载图像_C#_Asp.net Mvc 3 - Fatal编程技术网

C# 在Ajax.BeginForm中加载ElementId时不显示加载图像

C# 在Ajax.BeginForm中加载ElementId时不显示加载图像,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个MVC3应用程序,我需要添加ajax加载图像。这是我的看法 @using (Ajax.BeginForm( "LogOn","Account", new AjaxOptions { LoadingElementId = "div_loading" })) 这是我在同一视图上的非常简单的div: <div id="div_loading" style="display:none;"> <img src="@Url.Content

我有一个MVC3应用程序,我需要添加ajax加载图像。这是我的看法

    @using (Ajax.BeginForm(
      "LogOn","Account",
      new AjaxOptions { LoadingElementId = "div_loading" }))
这是我在同一视图上的非常简单的div:

  <div id="div_loading" style="display:none;">
   <img src="@Url.Content("~/Content/Images/loading.gif")" alt="" />
 </div>

当我单击“提交”按钮将表单发回时,loading.gif永远不会出现。我的代码运行正常,但没有显示加载指示器。图像的命名正确,位置正确。有人知道为什么吗

更新
显然,这与Telerik应用程序有关。如果我创建一个常规的MVC3应用程序,它会正常工作。当我创建Telerik MVC3应用程序时,它不起作用。还有其他人在Telerik中遇到过这种情况吗?

我宁愿避免在每次调用ajax时都附加一个加载iamge

这里最重要的答案是一种解决方案,可以在ajax发出发送调用时显示ajax微调器(加载图像):

它具有您需要的功能。只需使用javascript将图像的显示附加到ajax调用

应该是这样的:

<script type="text/javascript">
        $(document).ready(function () {
            BindSpinner();
        });

        function BindSpinner() {
            $("#div_loading").bind("ajaxSend", function () {
                $(this).show();
            }).bind("ajaxStop", function () {
                $(this).hide();
            }).bind("ajaxError", function () {
                $(this).hide();
            });
        };
    </script>

$(文档).ready(函数(){
BindSpinner();
});
函数BindSpinner(){
$(“#div_加载”).bind(“ajaxSend”,函数(){
$(this.show();
}).bind(“ajaxStop”,函数(){
$(this.hide();
}).bind(“ajaxError”,函数(){
$(this.hide();
});
};

这样做的目的是在ajax发送上显示div,并在页面上所有调用的ajax停止或出错时隐藏它。如果您将此脚本和div放在您的_布局中,它将为您站点上的每个Ajax调用执行此操作。

您可能希望尝试此操作。我是从那个问题上得到的


您也可以从以下位置尝试:


我也遇到了同样的问题,并且能够通过更改要隐藏/显示的元素的名称来解决它。我使用了驼峰格式:“myDivToBeHidden”


元素需要将“display”属性设置为“none”。

感谢您的响应。我将此添加到我的_Layout.cshtml中,但仍然没有看到加载程序。ajaxSend是我需要创建的方法吗?看起来很明显,但是图像是否已加载到您的项目中?尝试将备用文本设置为某个值,以确保显示div。哦,确保你的div也在_布局中。是的,在那里。如果我删除style=“display:none”并刷新,就会显示gif。相信我,我先看了一下。试着在div上设置z-index,也许前面没有加载图像。style='z-index:1234';我交叉着手指试过了,但没用:(我设置了一个示例项目,它可以工作。我将它移动到我的主项目,但它没有。但这似乎很简单。在加载gif之前,我隐藏并显示了对象。加载gif的操作是否没有被复制到输出目录?是否将生成操作设置为“内容”,并将“复制到输出”设置为“始终复制/Copy(如果较新)”?我认为显示:无一个是正确的。我尝试了这两种方法都适用于我。我认为OnBegin可能是一种方法,但它没有调用我的方法AjaxBegin。我这样做就像新的AjaxOptions{OnBegin=“return AjaxBegin()”})AjaxOptions事件采用javascript字符串或javascript函数名,因此只要您的AjaxBegin函数位于全局命名空间上,就应该可以工作。如果您选择:new AjaxOptions{OnBegin=“AjaxBegin”}@user1202717嘿,我只是想跟进一下,看看这对你是否有效?太棒了。这就是我一直在追求的。@BoundForGlory嘿,我只是想跟进一下,看看这对你是否有效?你试过用firebug调试它吗?你的控制台中有错误吗?
<div id="div_loading" style="visibility:hidden;">
   <img src="@Url.Content("~/Content/Images/loading.gif")" alt="" />
</div>
function AjaxBegin()
{
    $('#div_loading').show();

}
function AjaxComplete()
{
    $("#div_loading").hide();
}
function AjaxFailure(ajaxContext)
{
    var response = ajaxContext.responseText;
    alert("Error Code [" + ajaxContext.ErrorCode + "] " + response);
}


AjaxOptions:

OnFailure = "AjaxFailure";
OnBegin = "AjaxBegin";
OnComplete = "AjaxComplete";