MVC中使用PartialView方法
来源:互联网 发布:淘宝助理汇通快递模板 编辑:程序博客网 时间:2024/05/18 02:52
要实现类似这样的的功能:
在网上找到这样的示例。文章如下:
我们知道,作为Action的响应,最常见的做法是return View();也就是说,返回一个视图。但是如果我们某的操作只是要返回页面的一部分,典型的情况就是,在页面上实现局部的刷新功能。
实现局部刷新功能,以前我们是自己用javascript,解析json数据来实现的。
Action里面的代码
/// <summary>/// 返回某个照片目前的评论消息/// </summary>/// <returns></returns>//[AcceptVerbs(HttpVerbs.Post)][Authorize]public ActionResult Blog(string id){ var blogs = new[]{ new {Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now.ToString()}, new {Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now.ToString()}, new {Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now.ToString()}, new {Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now.ToString()}, new {Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now.ToString()}}; return Json(blogs, "text/json");}在页面中的javascript代码
$.ajax({ type: "POST", url: action + key, dataType: "json", success: function(result) { $("#blog").empty(); var ol = $("<ol />"); $.each(result, function(i, n) { var t = n.Title + ",(" + n.Author + "),创建于:" + n.Time + "<div>" + n.Details + "</div>"; $("<li />")。append(t)。appendTo(ol); }); ol.appendTo($("#blog")); }});这样做确实可以实现我们的功能,但太过繁琐,而且因为要在js中拼接那些div,实在是很容易出错的。
更好的做法是,首先创建一个PartialView,其实就是一个UserControl
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Web.Models.BlogItem》" %><table> <tr> <th>Ttile</th> <th>Author</th> <th>Details</th> <th>Time</th> </tr> <% foreach (var item in Model) { %> <tr> <td><%= Html.Encode(item.Title) %></td> <td><%= Html.Encode(item.Author) %></td> <td><%= Html.Encode(item.Details) %></td> <td><%= Html.Encode(item.Time) %></td> </tr> <% } %></table>
/// <summary>/// 返回某个照片目前的评论消息/// </summary>/// <returns></returns>//[AcceptVerbs(HttpVerbs.Post)][Authorize]public ActionResult Blog(string id){ var blogs = new Models.BlogItem[] { new Models.BlogItem(){Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now}, new Models.BlogItem(){Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now}, new Models.BlogItem(){Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now}, new Models.BlogItem(){Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now}, new Models.BlogItem(){Title="评论标题",Details="我的评论",Author="陈希章",Time=DateTime.Now} }; return PartialView("BlogView", blogs);}
这样的话,js中就只要一句话了
$("#blog").load(action + key);
文章介绍完毕。
以上文章所说的方法不是不行,但是不兼容。这应该是开发最头疼的问题,解决方法是
$.ajax({ type:"post", cache:false, url:action + key, success:function(msg){ $("#BlogView").html(msg); } });
- MVC中使用PartialView方法
- ASP.NET MVC中使用PartialView方法
- ASP.NET MVC中如何使用PartialView
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- 使用MVC框架中要注意的问题:何时使用PartialView(部分类)方法
- ASP.NET MVC中加载PartialView
- 在MVC应用程序中动态加载PartialView
- 在asp.net mvc中使用PartialView返回部分HTML段
- 在asp.net mvc中使用PartialView返回部分HTML段
- MVC PartialView 用法
- Asp.net mvc partialView
- MVC |分部视图 PartialView()
- MVC调用部分视图PartialView
- 使用Razor+MVC+PartialView实现预览记账凭证的HTML页面
- mvc中使用ajax方法
- MVC action返回partialView前台html 拼接
- .Net mvc return PartialView()注意点
- [仅作备份]申请和使用EC2
- 程序员的思考总结
- Linux 可加载内核模块剖析
- HDU4292--Food
- C++学习笔记_6:函数的重载
- MVC中使用PartialView方法
- 编写一个程序,该程序当输入Crtl+C时输出字符串"I got signal"。在其余的时间,该程序只是无限循环,每一秒输出一条"hello world"信息。
- 《Web Services Testing with soapUI》书附带的例子下载
- Solaris中配置DNS服务器
- linux enterprise 5下安装mysql 5.6
- 实验5 派生与继承
- org.springframework.web.context.ContextLoaderListener
- java中str.length()
- Struts中如何实现查询结果分页显示