zoukankan      html  css  js  c++  java
  • MVC学习系列——ActionResult扩展

             首先,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

  • 相关阅读:
    合并本地多次commit为一个commit
    git 取消文件跟踪
    遍历进程 遍历窗口
    linux查看程序运行参数
    ubuntu下载地址
    将博客搬至CSDN
    extern"C"的使用
    ESP32-NVS存储(非易失性存储库)
    ESP32-EEPROM存储
    c语言简单数据类型
  • 原文地址:https://www.cnblogs.com/xuliang1992/p/5328105.html
Copyright © 2011-2022 走看看