MVC中局部刷新PartialView(与Ajax.BeginForm结合)的用法
2016-09-02 13:04
309 查看
在MVC程序中我们通常都会用到局部刷新的功能,比如点击”搜索“按钮时 我们只希望结果Table刷新,而搜索的条件部分不变
Index页面如下:
@model IEnumerable<GetServerRelation.Models.ServerShowInfoModel>
@{
ViewBag.Title = "IndexPage";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>IndexPage</h2>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>GetRelationTree</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script type="text/javascript">
function btnclicksea() {
var id = $("#bssel").val();
$('#divservices').load('/Home/GetResults?id=' + id);
}
function btnclickcreate() {
var id = $("#bssel").val();
if (confirm('Are you sure Create id?')) {
$.ajax({
type: "post",
url: "home/CreateBusinessToCMDB",
data: { bsid: id },
dataType: "text",
success: function (data) {
if (data == "Sucess") {
alert("Create Sucess !");
}
}
});
}
else {
return;
}
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("GetResults", "Home", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divservices", InsertionMode = InsertionMode.Replace }))
{
<table>
<tr>
<td><span style=" font-size:15px">Business Name :</span></td>
<td>
<select style="width:230px;height:26px" id="bssel" name="bssel">
@foreach (var item in ViewBag.BS)
{
<option value="@item.id">
@item.name
</option>
}
</select>
</td>
<td><input type="submit" id="seaservice" value="Search" /></td>
</tr>
</table>
}
</div>
<div style="height: 5px; width: 955px; margin-left: auto; margin-right: auto;margin-top:10px"></div>
<div id="divservices">
@Html.Partial("~/Views/Home/ServiceView.cshtml", Model)
</div>
</body>
</html>
在以上Index页面中我们希望刷新的部分是id="divservices"的div在后台Controller中我们需找到“GetResults”这个Action 如下:
[HttpPost]
public ActionResult GetResults()
{
int id = Convert.ToInt32(Request.Form["bssel"]);
List<ServerShowInfoModel> list = GetServicesByBSid(id);
ViewBag.count = list.Count;
return PartialView("~/Views/Home/ServiceView.cshtml", list); //list可以是(from p in students select p).tolist();等
}
当然我们还需要建PartialView的页面(ServiceView.cshtml) 例如:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ServiceView</title>
</head>
<body>
<div id="services">
@*Total data: @Model.Count()*@
<table style="border :solid 1px green" width="960px">
<tr style="border:solid 1px green">
<th style="border:solid 1px green;text-align:center">Id</th>
<th style="border:solid 1px green;text-align:center">hostName</th>
<th style="border: solid 1px green; text-align: center">displayName</th>
</tr>
@foreach (var item in Model)
{
<tr class="trs" onmouseover="this.style.background='lightblue'" onmouseout="this.style.background=''" style="border:solid 1px green;">
<td style=" border:solid 1px green">@item.id</td>
<td style="border:solid 1px green">@item.hostName</td>
<td style="border:solid 1px green">@item.displayName</td>
</tr>
}
</table>
</div>
</body>
</html>
注:上面标红的几个js文件必须要引用 否则可能没效果(F:/Projects/VNTDemoTest)
Index页面如下:
@model IEnumerable<GetServerRelation.Models.ServerShowInfoModel>
@{
ViewBag.Title = "IndexPage";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>IndexPage</h2>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>GetRelationTree</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script type="text/javascript">
function btnclicksea() {
var id = $("#bssel").val();
$('#divservices').load('/Home/GetResults?id=' + id);
}
function btnclickcreate() {
var id = $("#bssel").val();
if (confirm('Are you sure Create id?')) {
$.ajax({
type: "post",
url: "home/CreateBusinessToCMDB",
data: { bsid: id },
dataType: "text",
success: function (data) {
if (data == "Sucess") {
alert("Create Sucess !");
}
}
});
}
else {
return;
}
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("GetResults", "Home", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divservices", InsertionMode = InsertionMode.Replace }))
{
<table>
<tr>
<td><span style=" font-size:15px">Business Name :</span></td>
<td>
<select style="width:230px;height:26px" id="bssel" name="bssel">
@foreach (var item in ViewBag.BS)
{
<option value="@item.id">
@item.name
</option>
}
</select>
</td>
<td><input type="submit" id="seaservice" value="Search" /></td>
</tr>
</table>
}
</div>
<div style="height: 5px; width: 955px; margin-left: auto; margin-right: auto;margin-top:10px"></div>
<div id="divservices">
@Html.Partial("~/Views/Home/ServiceView.cshtml", Model)
</div>
</body>
</html>
在以上Index页面中我们希望刷新的部分是id="divservices"的div在后台Controller中我们需找到“GetResults”这个Action 如下:
[HttpPost]
public ActionResult GetResults()
{
int id = Convert.ToInt32(Request.Form["bssel"]);
List<ServerShowInfoModel> list = GetServicesByBSid(id);
ViewBag.count = list.Count;
return PartialView("~/Views/Home/ServiceView.cshtml", list); //list可以是(from p in students select p).tolist();等
}
当然我们还需要建PartialView的页面(ServiceView.cshtml) 例如:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ServiceView</title>
</head>
<body>
<div id="services">
@*Total data: @Model.Count()*@
<table style="border :solid 1px green" width="960px">
<tr style="border:solid 1px green">
<th style="border:solid 1px green;text-align:center">Id</th>
<th style="border:solid 1px green;text-align:center">hostName</th>
<th style="border: solid 1px green; text-align: center">displayName</th>
</tr>
@foreach (var item in Model)
{
<tr class="trs" onmouseover="this.style.background='lightblue'" onmouseout="this.style.background=''" style="border:solid 1px green;">
<td style=" border:solid 1px green">@item.id</td>
<td style="border:solid 1px green">@item.hostName</td>
<td style="border:solid 1px green">@item.displayName</td>
</tr>
}
</table>
</div>
</body>
</html>
注:上面标红的几个js文件必须要引用 否则可能没效果(F:/Projects/VNTDemoTest)
相关文章推荐
- [MVC] 关于jquery调用PartialView局部刷新的问题
- asp.net mvc AjaxBeginForm结合Partial使用
- ASP.NET MVC 之PartialView用法
- asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面,或页面还是刷新了,的原因(或解决办法)
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单实例
- 微软AJAX 教学系列第一讲:局部刷新Partial Page Updates(翻译)
- How to use jquery or ajax to update razor partial view in c#/asp.net for a MVC project
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单
- Fragment与ViewPager的结合做出局部滑动刷新页面,以及关于app.FragmentManager和v4包的FragmentPagerAdapter冲突
- ajax结合mysql数据库和smarty实现局部数据状态的刷新方法
- ASP.NET MVC PartialView用法
- MVC通过PartialView部分加载刷新页面
- 局部刷新AJAX的用法。DropDownList联动
- 【MVC】AJAX+PartialView实现商城首页的楼层加载
- asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染
- MVC中Section、Partial View 和 Child Action(基本用法)
- Ajax中,ModalPopup与UpdatePanel结合,实现局部刷新的登录效果 (调用cs服务)
- Ajax中,ModalPopup与UpdatePanel结合,实现局部刷新的登录效果 (调用cs服务)
- ajax结合mysql数据库和smarty实现局部数据状态的刷新