[英]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>
</td>
<td>
<input value="Search" name="Search" id="submit" type="submit" />
<div id="ajax_loading">
<img src="../../Content/modal_images/spinner.gif" alt="Processing" /> Processing...
</div>
</td>
</tr>
</table>
</form>
<% } %>
</div>
</div>
任何有关如何简化或解决此问题的建议都将有所帮助。
谢谢。
@GB,我可以想到几种方法。 但是,鉴于您正在使用“模态”对话框,并且您希望在其中显示该对话框,因此会限制您的选择。
如果您正在使用“提交”按钮进行发布,看起来就像您一样,那么在返回页面时,您需要再次显示弹出窗口,然后填写详细信息。
一种不错的方法是使用PartialViews(PV)。 如果返回结果,则可以在PV上渲染,否则,可以渲染另一个。 不太好,但是可以。
最好的方法,恕我直言,是使用jQuery进行部分回发。 然后,您可以进行搜索,并从部分回发返回时,可以呈现列表或错误。
所以;
AJAX回发可以返回PV。 在这种情况下,返回值为html,可以将其简单地插入Div或其他内容中。
这将是理想的选择,因为您不会得到令人讨厌的屏幕闪烁效果。
如果您需要代码示例,请发表评论,我会提供一些示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.