【发布时间】:2014-02-02 06:05:45
【问题描述】:
我有这样的代码部分:
var @object =
new
{
val = "SUCCESS",
stuff = new
{
stuff1 = model.Stuff1,
stuff2 = model.Stuff2
}
};
return Json(@object, JsonRequestBehavior.AllowGet);
var @object =
new
{
val = "SUCCESS"
};
return Json(@object, JsonRequestBehavior.AllowGet);
var @object =
new
{
val = "ERROR",
details = "Details"
};
return Json(@object, JsonRequestBehavior.AllowGet);
对我来说,它看起来像是一种应该修复的重复代码。
我想重构那段代码,这样我就可以得到类似的东西:
var @object = GetResult("SUCCESS", object myobj)
return Json(@object, JsonRequestBehavior.AllowGet);
这样做的最佳做法是什么?
【问题讨论】:
-
您不能返回匿名对象。创建一个类并传递它的对象
-
@NitinVarpe 您可以返回匿名对象,但您必须从返回类型设置为
object或dynamic的方法执行此操作,并且您会失去类型安全性和智能感知支持。 -
@MarcinJuraszek 是的,如此处所述tomasp.net/blog/cannot-return-anonymous-type-from-method.aspx
-
我认为您没有想到这一点。您创建的每个
@object都是不同的。您无法从一个GetResult方法中全部返回它们。您试图满足的潜在需求是什么? -
@Enigmativity 我在代码中有很多地方都有重复的
@var @object = {bla bla}结构。我只是想用更简单的代码块来减少重复的多级代码块。
标签: c# .net asp.net-mvc-5