Model:
namespaceMvcapplication1.Models
{publicclassTeam
{publicstringPReletter {get;set; }publicstringName {get;set; }
}
}
通过jQuery异步加载部分视图
Home/Index.cshtml视图中:
@{
ViewBag.Title="Index";
Layout="~/Views/Shared/_Layout.cshtml";
}<h2>Index</h2>
<div>
<a href="#"id="a">通过jQuery异步</a> <br/>
</div>
<div id="result">
</div>@section scripts
{<script type="text/javascript">$(function() {
$('#a').click(function() {
$.Ajax({
url:'@Url.Action("Index","Home")',
data: { pre:'B'},
type:'POST',
success: function(data) {
$('#result').empty().append(data);
}
});returnfalse;
});
});</script>}
HomeController控制器中:
usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web.Mvc;usingMvcApplication1.Models;namespaceMvcApplication1.Controllers
{publicclassHomeController : Controller
{publicActionResult Index()
{returnView();
}
[HttpPost]publicActionResult Index(stringpre)
{varresult = GetAllTeams().Where(t => t.Preletter ==pre).ToList();
ViewBag.msg="通过jQuery异步方式到达这里~~";returnPartialView("TeamY", result);
}privateList<Team>GetAllTeams()
{returnnewList<Team>()
{newTeam(){Name ="巴西队", Preletter ="B"},newTeam(){Name ="克罗地亚队", Preletter ="K"},newTeam(){Name ="巴拉圭", Preletter ="B"},newTeam(){Name ="韩国", Preletter ="K"}
};
}
}
}
部分视图TeamY.cshtml:
@model IEnumerable<MvcApplication1.Models.Team>@{varresult =string.Empty;foreach(variteminModel)
{
result+= item.Name +",";
}
}
@ViewBag.msg.ToString()<br/>@result.Substring(0,result.Length -1)
通过MVC Ajax Helper异步加载部分视图
Home/Index.cshtml视图中需要引用jquery.unobtrusive-ajax.js文件,从控制器返回的强类型部分视图内容呈现到UpdateTargetId指定的div中。
@{
ViewBag.Title="Index";
Layout="~/Views/Shared/_Layout.cshtml";
}<h2>Index</h2>
<div>@Ajax.ActionLink("通过MVC Ajax Helper","Load","Home",new{pre ="K"},newAjaxOptions(){UpdateTargetId ="result1"})</div>
<div id="result1">
</div>
HomeController控制器中:
usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web.Mvc;usingMvcApplication1.Models;namespaceMvcApplication1.Controllers
{publicclassHomeController : Controller
{publicActionResult Index()
{returnView();
}publicActionResult Load(stringpre)
{varresult = GetAllTeams().Where(t => t.Preletter ==pre).ToList();
ViewBag.msg="通过MVC Ajax Helper到达这里~~";returnPartialView("TeamY", result);
}privateList<Team>GetAllTeams()
{returnnewList<Team>()
{newTeam(){Name ="巴西队", Preletter ="B"},newTeam(){Name ="克罗地亚队", Preletter ="K"},newTeam(){Name ="巴拉圭", Preletter ="B"},newTeam(){Name ="韩国", Preletter ="K"}
};
}
}
}
部分视图和上一种方式一样。
页面刷新的方式加载部分视图方法包括:
Html.RenderPartial()
Html.RenderAction()