ibr*_*maz 42 asp.net-mvc jquery asp.net-3.5
如何在ASP.NET模型 - 视图 - 控制器(MVC)框架中创建更新面板?
Ode*_*ode 64
您可以在ASP.NET MVC中使用局部视图来获得类似的行为.部分视图仍然可以在服务器上构建HTML,您只需要将HTML插入正确的位置(事实上,如果您愿意包含MSFT Ajax库,MVC Ajax帮助程序可以为您设置).
在主视图中,您可以使用Ajax.Begin表单来设置异步请求.
<% using (Ajax.BeginForm("Index", "Movie",
new AjaxOptions {
OnFailure="searchFailed",
HttpMethod="GET",
UpdateTargetId="movieTable",
}))
{ %>
<input id="searchBox" type="text" name="query" />
<input type="submit" value="Search" />
<% } %>
<div id="movieTable">
<% Html.RenderPartial("_MovieTable", Model); %>
</div>
Run Code Online (Sandbox Code Playgroud)
部分视图封装了您要更新的页面部分.
<%@ Control Language="C#" Inherits="ViewUserControl<IEnumerable<Movie>>" %>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.ReleaseDate.Year) %>
</td>
</tr>
<% } %>
</table>
Run Code Online (Sandbox Code Playgroud)
然后设置控制器操作以处理这两种情况.部分视图结果适用于asych请求.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.