MVC学习系列——ActionResult扩展

本文介绍了如何在MVC框架中扩展ActionResult以实现XML数据的返回。通过创建自定义的XmlResult类,可以轻松地将对象序列化为XML格式并发送到客户端。文章还提供了一个具体的例子,展示了如何使用这个自定义的结果类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         首先,MVC扩展性非常强。

         我从ActionResult扩展入手,因为我们知道微软ActionResult和其子类,有时候并不能满足所有返回值。

比如:我需要返回XML。

因此,现在我扩展XMLResult,继承ActionResult。

第一步:新建XmlResult

 1 public class XmlResult:ActionResult
 2     {
 3         private object _data;
 4 
 5         public XmlResult(object data)
 6         {
 7             this._data = data;
 8         }
 9         public override void ExecuteResult(ControllerContext context)
10         {
11             var serializer = new XmlSerializer(_data.GetType());
12             var reponse = context.HttpContext.Response;
13             reponse.ContentType = "text/xml";
14             serializer.Serialize(reponse.Output, _data);
15         }
16     }

第二步:为了演示,新建StudentViewModel类

1 public class StudentViewModel
2     {
3         public string ID { get; set; }
4         public string Name { get; set; }
5         public string Gender { get; set; }
6     }

第三步:在HomeController,增加GetXmlResult

1  public XmlResult GetXmlResult()
2         {
3             StudentViewModel viewModel = new StudentViewModel();
4             viewModel.ID = "1";
5             viewModel.Name ="Zhangsan";
6             viewModel.Gender = "Man";
7 
8             return new XmlResult(viewModel);
9         }

第四步:测试
在IE输入Home/GetXmlResult

 

转载于:https://www.cnblogs.com/xuliang1992/p/5328105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值