在Razor MVC3中,如何在表单提交操作返回时更改div的样式



我有一个Razor/ASP/MVC3 web应用程序,它有一个表单和一个提交按钮,这会在服务器上产生一些操作,然后发布回表单。通常会有一些延迟,重要的是用户知道他们应该等待它完成并确认,然后再关闭页面或在网站上做其他事情,因为用户似乎在这样做,有时他们的工作还没有得到处理,而他们认为已经得到了处理。

因此,我在一个隐藏的Div中添加了一个"Saving,Please Wait…"微调器,当他们按下Submit按钮时,该微调器就会显示出来,效果非常好,但我还没能找到在操作完成后重新隐藏Div的方法。

我的旋转Div是:

<div id="hahuloading" runat="server">
<div id="hahuloadingcontent">
<p id="hahuloadingspinner">
Saving, Please Wait...<br />
<img src="../../Content/Images/progSpin.gif" />
</p>
</div>
</div>

其CSS为:

#hahuloading
{
display:none;
background:rgba(255,255,255,0.8);
z-index:1000;
}

我让"请等待"微调器出现在可见按钮的JS方法中,它调用实际的提交按钮,如下所示:

$(document).ready(function () {
$("#submitVisibleButton").click(function () {
$(this).prop('disabled', true);
$("#myUserMessage").html("Saving...");
$("#myUserMessage").show();
$("#hahuloading").show();
document.getElementById("submitHiddenButton").click();
});
});

我的视图模型代码被调用、执行操作并返回一个字符串,该字符串设置用户消息内容,显示良好,但当我尝试在示例中执行一些代码时,我看到了如下代码:

// Re-hide the spinner:
Response.write (hahuloading.Attributes.Add("style", "visibility:hiddden"));

它告诉我"在目前的情况下,哈哈大笑是不存在的"。我有没有办法在视图模型中定义一个变量,该变量将对应于Div,这样我就可以从服务器的操作处理程序中设置它的可见性?或者,我可以让div以某个值为条件显示吗?当页面从操作返回时,这种方式会起作用吗?或者,无论如何,有人能帮我弄清楚如何在服务器操作完成后重新隐藏我的div吗?

谢谢!

这是用ajax完成的吗?我认为是这样,因为页面没有被重定向。试试这个:

$(document).ready(function () {
$("#submitVisibleButton").click(function () {
$(this).prop('disabled', true);
$("#myUserMessage").html("Saving...");
$("#myUserMessage").show();
$("#hahuloading").show();
document.getElementById("submitHiddenButton").click();
});
$("#hahuloading").ajaxStop(function () {
$(this).hide();
});
});

顺便说一句,您不再需要runat=server

最新更新