我正在使用普通视图页面。我有一个AJAX表单。当我单击此表单上的提交按钮时,我必须能够更新部分视图。但是我尝试使用这个选项,发现页面请求需要很多时间来渲染,我确信我更多地搞砸了这个过程。
这是我使用过的代码,
在控制器内部,
public ActionResult Index()
{
Users allUsers = new Users();
if (Request.IsAjaxRequest())
return View("Index", allUsers.GetAllUsers());
else
return View(allUsers.GetAllUsers());
}
部分视图[index.ascx]
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Model.Users>>" %>
<table>
<tr>
<th>
</th>
<th>
firstname
</th>
<th>
userid
</th>
<th>
dob
</th>
<th>
address
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%: Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %>
|
<%: Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%>
|
<%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
</td>
<td>
<%: item.firstname %>
</td>
<td>
<%: item.userid %>
</td>
<td>
<%: String.Format("{0:g}", item.dob) %>
</td>
<td>
<%: item.address %>
</td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
index.aspx页面,
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Ajax.BeginForm("Index", new AjaxOptions
{
UpdateTargetId = "results"
}))
{ %>
<input id="Submit1" type="submit" value="submit" />
<% } %>
<div id="results">
<% Html.RenderPartial("Index", ViewData.Model); %>
</div>
<h2>
Index</h2>
<table>
<tr>
<th>
</th>
<th>
firstname
</th>
<th>
userid
</th>
<th>
dob
</th>
<th>
address
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%: Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %>
|
<%: Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%>
|
<%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
</td>
<td>
<%: item.firstname %>
</td>
<td>
<%: item.userid %>
</td>
<td>
<%: String.Format("{0:g}", item.dob) %>
</td>
<td>
<%: item.address %>
</td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
</asp:Content>
答案 0 :(得分:0)
请尝试
return PartialView("index",allUsers.GetAllUsers())
如果是ajax请求。我怀疑控制器在你打电话时发送了Viewpage
return View("index", allUsers.GetAllUsers());
反过来渲染部分页面,从而在此过程中产生某种混乱。相反,您可以尝试将您的部分页面重命名为index1和
return View("index1", allUsers.GetAllUsers());
答案 1 :(得分:0)
我自己解决了这个问题,这是一个很好的挑战。我已将ajax链接放在usercontrol中,然后将结果div放在索引页面中,其中使用相同的partialview控件呈现数据。
然后在控制器的action方法中,我调用了返回部分视图(viewname和model data)。
这就是诀窍......事情已经完成了。无论如何,谢谢你的帮助到目前为止。