随笔分类 - ASP.NET MVC
摘要:我们知道,在ASP.NET MVC中实现多选Select的话,使用Html.ListBoxFor或Html.ListBox方法就可以。在实际应用中,到底该如何设计View Model, 控制器如何接收多选Select的选中项呢? 实现效果如下: 初始状态某些选项被选中。 当按着ctrl键,进行重新选择多项,点击"提交"按钮,把选中项的id拼接。 对于Select中的项,包含显示值,V...
阅读全文
摘要:在ASP.NET MVC的视图页向控制器传递异步数据,可能是数组,JavaScript对象,json,表单数据,等等。 关于数据,JavaScript对象有时候和json长得一模一样,有么有? var person = {Name: 'darren', Age: 21};以上是一个JavaScript对象。不过也可以这样表示: var person = {"Name":"darren"...
阅读全文
摘要:本篇在ASP.NET MVC下实践使用Quartz.NET执行定时任务。 首先通过NuGet安装Quartz.NET。 使用Quartz.NET的大致思路是:1、实现IJob接口,定义具体要做的事情2、使用Quartz.NET的API定义定时任务规则3、在Application_Start注册定时任务 实现IJob接口。 public class MyJob : IJob ...
阅读全文
摘要:遇到了这样的一个需求:通过勾选checkbox来更改select的内容。 在没有勾选checkbox之前是这样的: 在勾选checkbox之后是这样的: 想通过ajax异步来实现。所以,从控制器拿到的json数据,在控制器中应该先是Dictionary类型,然后再转换成json格式。 在没有勾选checkbox之前,select中内容对应的Model为: public c...
阅读全文
摘要:本篇体验在ASP.NET MVC 4中使用Log4Net记录日志。 通过NuGet安装Log4Net。 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息。 大致的思路是: 1、写一个记录日志的接口2、实现记录日志接口的类,用Log4Net的API实现3、在Web.config中配置Log4Net4、在Global.asax中注册Log4Net5、自定义一个出...
阅读全文
摘要:在需要处理很多分类以及导航的时候,树形导航菜单就比较适合。例如在汽车之家上: 页面主要分两部分,左边是导航菜单,右边显示对应的内容。现在,我们就在ASP.NET MVC 4 下临摹一个,如下: 实现的效果包括:1、点击导航菜单上的品牌,左侧显示该品牌下的所有车型。2、点击导航菜单上的车系,左侧显示该车系下的所有车型。3、点击左侧上方的字母导航,锚点跳到导航菜单的对应部分。4、页面加载完...
阅读全文
摘要:本篇接着上一篇"ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API",尝试获取数据。 在Models文件夹下创建Comment类: namespace MvcApplication5.Models
{ public class Comment { public int ID { get; ...
阅读全文
摘要:本篇尝试在现有的ASP.NET MVC 4 项目上增加使用ASP.NET Web API。 新建项目,选择"ASP.NET MVC 4 Web应用程序"。 选择"基本"项目模版。 在Controllers文件夹下添加一个名称为"TestController"的空API控制器。 在引用文件夹中多了以下程序集:System.Web.HttpSystem.Web.Http.WebHostS...
阅读全文
摘要:本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移。 创建一个ASP.NET MVC 4 网站。 在Models文件夹内创建Person类。 public class Person { public int ID { get; set; } public string FirstName { ge...
阅读全文
摘要:本篇是针对我在做项目过程中遇到的特定需求而做的一个Demo, 没有很大的通用性,读者酌情可绕行。 标题不能完全表达本意,确切的情景需要展开说。假设有三级分类,关于分类这样设计: public class Category { public int Id { get; set; } public string Name { get; set; }...
阅读全文
摘要:通常,我们看到的购物车是这样的: 虽然这种购物车显示方式被广泛运用,但我个人觉得不够直观。如果换成这样呢? 本篇的源码放在了:https://github.com/darrenji/ShoppingCartInMVC 以上购物车页能实现的效果包括:1、购物车明细:显示订购数量、总金额,清空购物车。2、购物车内产品:数量可调整,对应的小计和总计动态变化。点击移除按钮移除该产品...
阅读全文
摘要:在ASP.NET MVC中,在链接中附加路由数据有2种方式。一种是把路由数据放在匿名对象中传递: 走你 一种是放在RouteValueDictionary对象中传递: 也走你 如果在控制器中,通过类似this.ControllerContext.RouteData.Values["somekey"].ToString()方式来获取路由数据是行不通的,因为Url.Action方法所带...
阅读全文
摘要:在ASP.NET MVC中,可以使用RegularExpression特性来验证手机号码。 public class Customer { [Required(ErrorMessage = "必填")] [Display(Name = "手机号")] [RegularExpression(@"^1[3458][0-9]{9}$", ...
阅读全文
摘要:有这样的一个需求:提交表单,如果用户没有登录,就跳转到登录页,登录后,跳转到原先表单提交这个页面,而且需要保持提交表单界面的数据。 提交表单的页面是一个强类型视图页,如果不考虑需要保持提交表单界面的数据,可以先设计这样的一个Model: public class Student
{ public string Name{get;set;} public string Retu...
阅读全文
摘要:使用使用jQuery的Load方法可以加载静态页面,本篇就在ASP.NET MVC下实现。 Model先行: public class Article { public int Id { get; set; } public string Url { get; set; } } 在HomeController中的Index方法,向视...
阅读全文
摘要:在"在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片"中,已经实现了在客户端和服务端限制图片大小和格式,以及在服务端裁剪图片。但还有一个重要的话题是需要面对的,那就是图片脏数据问题。 假设用户添加产品信息,并且上传了图片,可之后用户没有点击页面上的添加按钮,这就导致上传图片成为"脏数据",存在着却一直不会被使用。解决这个问题的大致思路是: ○ ...
阅读全文
摘要:在ASP.NET MVC4中,HtmlHelper为我们提供了Html.RadioButton()方法用来显示Radio Button单选按钮。如果想显示一组单选按钮,通常的做法是遍历一个集合把每个单选按钮显示出来。本篇尝试写一个扩展方法用来展示一组带验证的单选按钮。 首先来扩展HtmlHelper,扩展方法中接收一个SelectListItem的集合,遍历这个集合把每个单选按钮显示出来,并...
阅读全文
摘要:在"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"一文中,使用JSAjaxFileUploader这款插件实现了单文件上传,在chrome, firefox下运行良好,但在某些版本的IE浏览器(比如IE8,IE9)下却无法正常运行,这可能是因为JSAjaxFileUploader插件在编写时没有考虑到某些低版本IE浏览器导致的。本篇,...
阅读全文
摘要:在产品展示中,通常涉及产品的展示方式、查询、排序、分页,本篇就在ASP.NET MVC下,使用Boostrap来实现。 源码放在了GitHub: https://github.com/darrenji/ProductsSearchSortPage 先上效果图: 最上面是搜索和排序,每次点击搜索条件、排序,或者删除搜索条件都会触发异步加载。 中间部分为产品展示,提供了列表和格子这2...
阅读全文
摘要:使用typeahead.js可以实现预先输入,即智能提示,本篇在ASP.NET MVC下实现。实现效果如下: 首先是有关城市的模型。 public class City { public int Id { get; set; } public string Name { get; set; } public string PinY...
阅读全文