繁体   English   中英

如何在MVC中的jQuery模式上显示错误消息

[英]How to display error message on jQuery modal in MVC

我正在尝试使用jQuery模式通过员工ID查找员工。 我的模态有一个输入文本框的员工ID和一个搜索按钮。 单击搜索按钮后,我将在数据库中查找该值,如果不存在结果,我正在寻找一条错误消息以在同一模式上显示。

我的控制器如下所示:

  [AcceptVerbs(HttpVerbs.Post)]
    [ActionName("CreateEmpLookup")]
    public ActionResult CreateEmpLookupPost(string empIDSearch)
    {
        List<spGetEmployeeDataByEIDResult> res = new List<spGetEmployeeDataByEIDResult>(_service.GetUserFromDB(empIDSearch));
        if (res.Count > 0)
        {
            ViewData["Status"] = true;
            return RedirectToAction("Create", new { empID = empIDSearch });
        }
        else
        {
            ViewData["Status"] = "false";
            return Content("False");
        }
    }

我只是不确定如何将信息传递回弹出模式,即没有结果。 我在想我必须替换此行return Content("False"); 消息将返回到jQuery弹出模式。

在弹出模式中,我有以下行将显示任何错误消息:

<input type="hidden" id="Status" value="<%= (ViewData["Status"] == null) ? "true" : ViewData["Status"].ToString() %>" />

这是我的jQuery代码的片段:

$('#login_form').modal();

以及jQuery定位的div:

<div id="login_form" style='display: none'>
    <div id="status" align="left">
        <center>
            <h1>
                <img src="../../Content/modal_images/Search48.png" alt="Key" id="modal_img" />
                <label id="modal_title">
                    Employee Search</label>
            </h1>
            <br class="modal_br" />
            <div id="login_response">
                <input type="hidden" id="Status" value="<%= (ViewData["Status"] == null) ? "true" : ViewData["Status"].ToString() %>" />
            </div>
        </center>
        <% using (Html.BeginForm("CreateEmpLookup", "", FormMethod.Post))
       { %>
        <form id="login" action="javascript:alert('success!');">
        <%--<input type="hidden" name="action" value="user_login" />
        <input type="hidden" name="module" value="login" />--%>
        <table class="modal_table">
            <tr>
                <td>
                    <label id="modal_label">
                        Employee ID:</label>
                </td>
                <td>
                    <%= Html.TextBox("empIDSearch", "", new { @maxlength = "6" })%>
                </td>
            </tr>
            <tr>
                <td>
                    &nbsp;
                </td>
                <td>
                    <input value="Search" name="Search" id="submit" type="submit" />
                    <div id="ajax_loading">
                        <img src="../../Content/modal_images/spinner.gif" alt="Processing" />&nbsp;Processing...
                    </div>
                </td>
            </tr>
        </table>
        </form>
        <% } %>
    </div>
</div>

任何有关如何简化或解决此问题的建议都将有所帮助。

谢谢。

@GB,我可以想到几种方法。 但是,鉴于您正在使用“模态”对话框,并且您希望在其中显示该对话框,因此会限制您的选择。

如果您正在使用“提交”按钮进行发布,看起来就像您一样,那么在返回页面时,您需要再次显示弹出窗口,然后填写详细信息。

一种不错的方法是使用PartialViews(PV)。 如果返回结果,则可以在PV上渲染,否则,可以渲染另一个。 不太好,但是可以。

最好的方法,恕我直言,是使用jQuery进行部分回发。 然后,您可以进行搜索,并从部分回发返回时,可以呈现列表或错误。

所以;

  1. 允许用户输入搜索条件
  2. 进行jQuery / AJAX调用以进行搜索
  3. 如果失败,则返回包含错误的PV并将其呈现给父DIV。
  4. 如果成功,但目前尚不清楚您在做什么,请显示另一个PV以及用户详细信息/列表。

AJAX回发可以返回PV。 在这种情况下,返回值为html,可以将其简单地插入Div或其他内容中。

这将是理想的选择,因为您不会得到令人讨厌的屏幕闪烁效果。

如果您需要代码示例,请发表评论,我会提供一些示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM