MVC3可选参数

时间:2012-03-18 15:02:12

标签: asp.net-mvc-3 c#-4.0 optional-parameters method-signature

这是对此的跟进: What does MVC3 do with C# Optional Parameters?

我有以下签名的行动:

public ViewResult Show(int Id, PublishingErrorSummary pubErrors=null, String title=null)

在请求server / show / 1时,pubErrors不为null,但title为null。这怎么可能?这些只是两个对象,但字符串以某种方式设法变为null。我在哪里可以解决这个问题?

编辑:添加了类定义

public class PublishingErrorSummary
{
    public List<string> StepOneErrors { get; set; }
    public List<string> StepTwoErrors { get; set; }
    public List<string> StepThreeErrors { get; set; }
    public List<string> StepFourErrors { get; set; }
}

1 个答案:

答案 0 :(得分:3)

PublishingErrorSummary是一个复杂的对象。默认模型绑定程序始终初始化复杂对象。将其默认值设置为null并没有多大意义。同样代表title参数。字符串是引用类型,如果没有发送请求参数title,它们的默认值无论如何都将为空。