我正在尝试使用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 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>
关于如何使这个更容易或解决这个问题的任何建议都会有所帮助。
谢谢。
答案 0 :(得分:0)
@GB,我可以想到几种方法来做到这一点。但是,如果您正在使用“模态”对话框,并且希望在那里显示它,则会限制您的选项。
如果您正在使用提交按钮进行发布,就像您看到的那样,那么在返回页面时,您需要再次显示弹出窗口,然后填写详细信息。
这样做的一个很好的方法可能是使用PartialViews(PV)。如果你得到一个结果然后你可以在PV上渲染,如果没有,那么你渲染另一个。不太好,但它会起作用。
最好的方法,恕我直言,是使用jQuery进行部分回发。然后你可以进行搜索,从部分帖子返回后,你可以渲染一个列表或错误。
因此;
AJAX回发可以返回PV。在这种情况下,返回值是html,可以简单地插入到Div或其他内容中。
这是理想的,因为你没有得到恼人的屏幕闪烁效果。
如果您需要代码示例,请发表评论,我会提供一些。