Ajax Microsoft MVC:显示错误或帮助消息覆盖

Ajax Microsoft MVC:显示错误或帮助消息覆盖,ajax,razor,asp.net-mvc-5,Ajax,Razor,Asp.net Mvc 5,当用户单击表单输入旁边的“帮助”图标时,或者当输入未通过验证规则时,“我的web表单”将以覆盖形式显示消息 当用户通过数据输入表单工作时,这些消息有时是动态组合的;消息的内容基于在其他输入元素中输入的值;因此,消息不能是静态的,并作为数据帮助消息内容保存在每个HTML元素中 到目前为止,我一直在做这个客户端的工作,但我正在学习MVC,我想知道如何使用服务器端代码来改变Razor视图来完成同样的事情 在客户端方法中,下面的javascript切换div的可见性,并注入一个HTML字符串以显示给用户

当用户单击表单输入旁边的“帮助”图标时,或者当输入未通过验证规则时,“我的web表单”将以覆盖形式显示消息

当用户通过数据输入表单工作时,这些消息有时是动态组合的;消息的内容基于在其他输入元素中输入的值;因此,消息不能是静态的,并作为数据帮助消息内容保存在每个HTML元素中

到目前为止,我一直在做这个客户端的工作,但我正在学习MVC,我想知道如何使用服务器端代码来改变Razor视图来完成同样的事情

在客户端方法中,下面的javascript切换div的可见性,并注入一个HTML字符串以显示给用户

function overlay(msgHTML) {
        el = document.getElementById("overlay");
        el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
        if (el.style.visibility=="visible") {
            msg = document.getElementById("errmsg");
            msg.innerHTML = msgHTML;
        }

    }
MVC5与Razor的对应功能是什么?控制器中的C#如何切换div的可见性,或者如何切换css类;如何注入错误消息内容


同样,当用户使用表单时,这种情况必须一次又一次地发生。表单第一次呈现时还不清楚,因此必须使用Ajax进行处理。

如果需要根据某些条件动态显示视图,则应使用PartialView。您可以在服务器上呈现它们,然后使用Ajax获取字符串并将内容推送到某个div中:

控制器操作-此操作将通过以下方式返回要在弹出窗口中显示的视图:

您可以根据someCriteria参数中的某些信息(例如帮助部分、错误部分等)动态确定要渲染的部分,从而对上述内容进行扩展

您的_MyPartialPopupView.cshtml局部视图-这是一个局部视图,其中包含将在MyPartialPopupView操作中呈现的实际html:

@model MyCriteria

<div>do your model bindings here</div>

请解释任何反对票,因为我只是在学习MVC,不知道我所问的是否违反了范例。感谢您提供的有用的PartialViews信息。对于帮助消息场景,客户机可以请求控制器发回内容,客户机将在需要的地方填充内容。这就是我现在所做的,没有MVC和Razor。但是,如果验证被移动到服务器端(例如,不再在客户端使用类似于敲除的东西),并且服务器需要为用户显示错误,是否存在类似于服务器到客户端的“桥”的东西,允许服务器调用客户端功能?服务器无法在MVC中调用客户端,除非您使用类似的东西。但是,您可以使用验证用户数据并显示一些错误。或者,您的returnData对象可以有一个Error属性和一些用于在客户端呈现错误的Error对象(可能使用knockout,但至少所有逻辑都是服务器端的)。我希望这会有所帮助。再次感谢您提供到Ajax.Forms和signar的链接。
@model MyCriteria

<div>do your model bindings here</div>
$.ajax({
    url: "/Home/MyPartialPopupView",
    data: myCriteria,
    success: function (returnData) {  
        $("#myPopup").html(returnData.View); 
    }
});