MVC中使用PartialView方法
要实现类似这样的的功能:
在网上找到这样的示例。文章如下:
我们知道,作为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返回部分HTML段
问题链接: MVC怎样实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...
- mvc5 返回html,在asp.net mvc中使用PartialView返回部分HTML段
该问题是个常见的 case, 故写篇文章用于提示新人. 相信聪明的你已经知道了它俩的区别了,没错 一个用于返回整体,另一个返回局部(部分). 假设我有这样一个需求,输入用户名,然后返回相关信息.之前的 ...
- ASP.NET MVC中为DropDownListFor设置选中项的方法
在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中.本篇只整理思路,不涉及完整代码. □ 思路 往前台视图传的类型是List< ...
- ASP.NET MVC中实现多个按钮提交的几种方法
有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较 ...
- MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...
今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (二)
解释,不解释: 紧接上文,我们在Visual Studio2012中看到系统为我们自动创建的视图(View)文件Index.cshtml中,开头有如下这句话: @model IEnumerable&l ...
- 《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)
本文出自<从零开始学ASP.NET CORE MVC> 推荐文章:ASP.NET Core Web 项目文件 ASP.NET Core 中的 Main方法 一个开始专心写字的人 在ASP. ...
- ASP.NET MVC中的模型装配 封装方法 非常好用
下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...
- 【转】一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。
ASP.NET MVC 引入的WebApi自然且较好地满足了ajax的交互需求,但使用jQuery ajax调用WebApi返回500 Internal Server Error时却不太好查找错误.在 ...
最新文章
- C++11中std::future的使用
- Hand on Machine Learning第三章课后作业(1):垃圾邮件分类
- C++11特性(模板类 initializer_list)
- Log4j每天、每小时、每分钟定时生成日志文件
- rpm批量卸载所有带有Java的文件
- python安装email模块_Python使用SMTP模块、email模块发送邮件
- 回旋矩形C语言,C语言程序设计100例之(27):回旋方阵
- spring 2.0核心技术与最佳实践 pdf_推荐 Spring Boot 实践学习案例大全 数据缓存 和中间件 安全权限...
- bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率
- CSS3秘笈复习:第十一章
- WPF学习笔记-如何按ESC关闭窗口
- 锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总
- mysql jemalloc_jemalloc优化MySQL、Nginx内存管理
- 【2022年】浙江省专升本数学全面总结-(空间解析几何与向量代数)
- Emulator: Process finished with exit code -1073741515 (0xC0000135)错误
- stc15流水灯c语言,STC89C52单片机流水灯
- Groovy - Groovy ambiguous method overload
- C语言--正弦、余弦函数
- 刷题 Python: 明码
- 质量检验中那些不为人所知的事儿