下面是2个匿名对象的声明.第二个是第一个完全相同的副本,除了里面没有lastRefresh元素.
有没有办法声明这两个对象而不重复完全相同的部分?
var routeValuesForAutoRefresh = new { page = @ViewBag.nextPage,lastRefresh = @ViewBag.lastRefresh,searchTerm = Request["searchTerm"],searchColumn = Request["searchColumn"],searchOrder = Request["searchOrder"],searchDescending = (Request["searchDescending"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus0 = (Request["requestStatus0"] ?? "false").ToLower().IndexOf("true") > -1,requestStatus1 = (Request["requestStatus1"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus3 = (Request["requestStatus3"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus5 = (Request["requestStatus5"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus7 = (Request["requestStatus7"] ?? "true").ToLower().IndexOf("true") > -1,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 }; var routeValuesForNextPage = new { page = @ViewBag.nextPage,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 };
解决方法
它没有语法,但你有几个不错的解决方法:
>使您的类命名,并从另一个派生一个(或从公共基础派生)
>使用公共字段创建第三个匿名对象,然后在“真实”命名对象中使用它
>创建单独的局部变量,并使用它们来创建两个匿名对象的字段.
以下是第二种方法的示例:
var routeValuesForNextPage = new { page = @ViewBag.nextPage,requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1 }; var routeValuesForAutoRefresh = new { routeValuesForNextPage,lastRefresh = @ViewBag.lastRefresh };
以下是第三种方法的示例:
var page = @ViewBag.nextPage; var searchTerm = Request["searchTerm"]; var searchColumn = Request["searchColumn"]; var searchOrder = Request["searchOrder"]; var searchDescending = (Request["searchDescending"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus0 = (Request["requestStatus0"] ?? "false").ToLower().IndexOf("true") > -1; var requestStatus1 = (Request["requestStatus1"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus3 = (Request["requestStatus3"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus5 = (Request["requestStatus5"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus7 = (Request["requestStatus7"] ?? "true").ToLower().IndexOf("true") > -1; var requestStatus9 = (Request["requestStatus9"] ?? "true").ToLower().IndexOf("true") > -1; var routeValuesForAutoRefresh = new { page,searchTerm,searchColumn,searchOrder,searchDescending,requestStatus0,requestStatus1,requestStatus3,requestStatus5,requestStatus7,requestStatus9 }; var routeValuesForNextPage = new { page,requestStatus9 };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。