今天,对一段数据进行了处理,用的是System.Web.Mvc框架的HTTPPost方法,发现接收的数据为空。
代码示例如下(示例代码,所以写的不规范):
public class AController : Controller
{
[HttpPost]
public AResponse A(ARequest data)
{
AResponse result = new AResponse ();
return result;
}
}
结果发现收到的data值为空。
查了各种资料,最后发现原因为:
ARequest内部默认访问权限不可访问,没有get和set访问权限,导致post过来的变量无法设置。
加上{ get; set; }语句,即加上set权限以后,该问题解决。
至于get和set的权限,大致可以理解为:只读(get),只写(set),读写(get;set;)。
PS:C#添加了很多特性,扩充了语言的功能,也带来了使用的复杂性,这值得注意。