提前为这个问题道歉,但虽然我在这里找到了很多建议,但没有一个对我有用。我感觉很疯狂,所以...
我有一个MVC 3应用程序,当它第一次加载时,会显示包含所有用户的模型数据的表。那部分工作正常。我有两个文本框,一个用于帐户ID,另一个用于用户,允许我重新查询数据库以获取更具体的用户数据。当我使用提交按钮时,我将数据恢复,但整个页面刷新,并且当我使用正确的数据返回表单和表格时,页面的其余部分为白色。我以前没有任何图形或任何东西。另一个有趣的事情是,如果我再次从白页提交表单,无论有效参数如何,AJAX都能正常工作。我很困惑。
表格如下:
@using (Ajax.BeginForm("TaskList", "Dispatch",
new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "tblBody",
InsertionMode = InsertionMode.Replace }, new { id = "frmTaskList" }))
{
<table id="tblTaskList" class="tblTaskList">
<thead>
<tr>
<th>Ticket ID</th>
<th>Date</th>
<th>Customer Name</th>
</tr>
</thead>
<tbody id="tblBody" class="tblBody">
@{for (var ix = 0; ix < Model.Value.Count - 1; ix++)
{
<tr id="@(Model.Value[ix].TicketId)">
<td>@Model.Value[ix].TicketId</td>
<td>@Model.Value[ix].Created</td>
<td>@Model.Value[ix].ContactName</td>
</tr>
}}
</tbody>
</table>
<input type="text" id="hidAccId" name="hidAccId" value="" />
<input type="text" id="hidUserId" name="hidUserId" value="" />
<input type="submit" id="btnTaskList" value="Submit" />
}
我正在使用的脚本放在页面顶部:
<script src="../../Scripts/jquery-ui-1.8.11.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
附注:我尝试使用@ Url.Content而不是src属性无济于事。我也尝试过使用以下内容,但没有不同的结果:
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
答案 0 :(得分:1)
你有两次引用jQuery和jQuery-ui。这不是必需的。以下应该足够了:
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
你显然应该确保在Scripts文件夹中存在jquery-1.7.2.min.js。开箱即用的ASP.NET MVC 3只带有jQuery 1.5。就Microsoft *脚本而言,忘记这些,它们不再在ASP.NET MVC 3中使用。
此外,您的表单中没有提交按钮。
此:
<input type="button" id="btnTaskList" value="Submit" />
应该是:
<input type="submit" id="btnTaskList" value="Submit" />
如果您希望表单提交发生。