返璞归真asp.net mvc 1.0(5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test【转】
2009-09-17 11:24
656 查看
介绍
asp.net mvc 之 Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
Action Filter - 在 Controller 层对信息做过滤。如何实现自定义的 Action Filter
UpdateModel - 根据参数自动为对象的属性赋值
ModelBinder - 定义如何绑定 Model,DefaultModelBinder 实现了 IModelBinder ,其可以根据名称自动将参数赋值到对象对应的属性上
Ajax - 在 asp.net mvc 中使用 ajax
Unit Test - 在 asp.net mvc 中使用单元测试
示例
1、asp.net mvc 自带的 Action Filter 的演示
FilterDemoController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using MVC.Models;
namespace MVC.Controllers
自定的 Action Filter 的实现
MyFilter.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.AntiForgeryToken() %>
<h2>
Details</h2>
<p>
<strong>ProductID:</strong>
<%= Html.Encode(Model.ProductID) %>
</p>
<p>
<strong>ProductName:</strong>
<%= Html.Encode(Model.ProductName) %>
</p>
<p>
<input type="submit" name="btnSubmit" value="submit" />
</p>
</asp:Content>
2、应用 UpdateModel 的 Demo
UpdateModelController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MVC.Controllers
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Details</h2>
<p>
<strong>UserId:</strong>
<%= Model.ID %>
</p>
<p>
<strong>Name:</strong>
<%= Model.Name%>
</p>
<p>
<strong>Age:</strong>
<%= Model.Age%>
</p>
</asp:Content>
3、演示什么是 ModelBinder
ModelBinderController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MVC.Controllers
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Details</h2>
<p>
<strong>UserId:</strong>
<%= model.ID %>
</p>
<p>
<strong>Name:</strong>
<%= model.Name %>
</p>
<p>
<strong>Age:</strong>
<%= model.Age %>
</p>
<p>
<strong>error:</strong>
<%= ViewData["errorMsg"] %>
</p>
</asp:Content>
4、使用 ajax 的 Demo
<p>
Ajax
<script src="http://www.cnblogs.com/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="http://www.cnblogs.com/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<br />
<!-- AjaxHelper 简要说明 -->
<%= Ajax.ActionLink(
"ProductId 为 1 的详情页",
"Details",
"Product",
new { id = 1 },
new AjaxOptions { UpdateTargetId = "ajax" }
)
%>
</p>
<div id="ajax" />
5、在 VS 中做单元测试
ProductControllerTest.cs
using MVC.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using System.Web.Mvc;
using MVC.Models;
using System.Collections.Generic;
namespace MVC.Tests
asp.net mvc 之 Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
Action Filter - 在 Controller 层对信息做过滤。如何实现自定义的 Action Filter
UpdateModel - 根据参数自动为对象的属性赋值
ModelBinder - 定义如何绑定 Model,DefaultModelBinder 实现了 IModelBinder ,其可以根据名称自动将参数赋值到对象对应的属性上
Ajax - 在 asp.net mvc 中使用 ajax
Unit Test - 在 asp.net mvc 中使用单元测试
示例
1、asp.net mvc 自带的 Action Filter 的演示
FilterDemoController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using MVC.Models;
namespace MVC.Controllers
自定的 Action Filter 的实现
MyFilter.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.AntiForgeryToken() %>
<h2>
Details</h2>
<p>
<strong>ProductID:</strong>
<%= Html.Encode(Model.ProductID) %>
</p>
<p>
<strong>ProductName:</strong>
<%= Html.Encode(Model.ProductName) %>
</p>
<p>
<input type="submit" name="btnSubmit" value="submit" />
</p>
</asp:Content>
2、应用 UpdateModel 的 Demo
UpdateModelController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MVC.Controllers
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Details</h2>
<p>
<strong>UserId:</strong>
<%= Model.ID %>
</p>
<p>
<strong>Name:</strong>
<%= Model.Name%>
</p>
<p>
<strong>Age:</strong>
<%= Model.Age%>
</p>
</asp:Content>
3、演示什么是 ModelBinder
ModelBinderController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MVC.Controllers
Details.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Details</h2>
<p>
<strong>UserId:</strong>
<%= model.ID %>
</p>
<p>
<strong>Name:</strong>
<%= model.Name %>
</p>
<p>
<strong>Age:</strong>
<%= model.Age %>
</p>
<p>
<strong>error:</strong>
<%= ViewData["errorMsg"] %>
</p>
</asp:Content>
4、使用 ajax 的 Demo
<p>
Ajax
<script src="http://www.cnblogs.com/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="http://www.cnblogs.com/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<br />
<!-- AjaxHelper 简要说明 -->
<%= Ajax.ActionLink(
"ProductId 为 1 的详情页",
"Details",
"Product",
new { id = 1 },
new AjaxOptions { UpdateTargetId = "ajax" }
)
%>
</p>
<div id="ajax" />
5、在 VS 中做单元测试
ProductControllerTest.cs
using MVC.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using System.Web.Mvc;
using MVC.Models;
using System.Collections.Generic;
namespace MVC.Tests
相关文章推荐
- asp.net mvc 1.0(5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test(非原创)
- asp.net mvc 1.0(5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test(非原创)
- 返璞归真asp.net mvc 1.0(5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
- 返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
- 返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
- 返璞归真 asp.net mvc (5) - Action Filter, UpdateModel, ModelBinder, Ajax, Unit Test
- 深入分析 ASP.NET Mvc 1.0 – 4. 使用ModelBinder绑定Action的参数
- ASP.NET MVC中默认Model Binder绑定Action参数为List、Dictionary等集合的实例
- 返璞归真asp.net mvc 1.0(3) - Controller/Action【转】
- 返璞归真asp.net mvc 1.0(3) - Controller/Action
- ASP.NET MVC Action Filter与内置的Filter实现
- Asp.Net MVC TryUpdateModel使用说明
- ASP.NET MVC单元测试时如何对含有ModelState.IsValid的Action进行测试
- asp.net mvc源码分析-Action篇 IModelBinder
- ASP.NET MVC:创建 ModelBinder 自动 Trim 所有字符串
- ASP.NET MVC 1.0 Test Driven Development: Problem-Design-Solution
- ASP.NET MVC Action Filter - Caching and Compression
- Asp.net MVC中 model 验证方式 ajax +jquery
- 解决asp.net mvc UpdateModel更新对象后出现null问题的方法
- Asp.net mvc 使用Ajax调用Action 返回数据。