【发布时间】:2015-07-31 14:39:38
【问题描述】:
我在控制器中有一个函数,我收到了表单的信息。我有这个代码:
public Actionresult functionOne(string a, string b, string c = "foo" )
我试图将其转换为类似的类
public class bar
{
public string a {get;set;}
public string b {get;set;}
public string c {get;set;}
}
并将它们作为对象接收
public Actionresult functionOne(bar b)
我还尝试将默认值放在“c”中但不起作用,我尝试了这个:
public class bar
{
public string a {get;set;}
public string b {get;set;}
[System.ComponentModel.DefaultValue("foo")]
public string c {get;set;}
}
什么都没发生,我收到的是null
我也试过
public class bar
{
public string a {get;set;}
public string b {get;set;}
public string c
{
get
{
return c;
}
set
{
c="foo"; //I also tried with value
}
}
}
我应该怎么写这个默认值?
【问题讨论】:
-
也许在构造函数中放一个默认值?
-
[DefaultValue]属性确实没有任何作用;它旨在让设计人员能够确定您初始化属性的值。 -
嗨。 DefaultValueAttribute 不会导致成员使用属性值自动初始化。您必须在代码中设置初始值。当读取反射中的任何成员为空时,DefaultValueAttribute 对反射有用,使用此属性查找或设置默认值。
标签: c#