3

提前为这个问题道歉,但尽管我在这里找到了很多建议,但没有一个对我有用。我感觉很疯狂,所以...

我有一个 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>
4

1 回答 1

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>

您显然应该确保 jquery-1.7.2.min.js 存在于 Scripts 文件夹中。开箱即用的 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" />

如果您希望提交表单。

于 2012-07-22T16:34:57.517 回答