系统参数异常mvc .net

时间:2016-01-07 08:05:53

标签: c# asp.net asp.net-mvc asp.net-mvc-4 datetime

我在查询字符串中传递参数。当我将链接悬停在浏览器中时,它会正确显示查询字符串中的键值对。当我单击链接时,首先,在特定操作中不触发断点,其次,我得到以下异常:

  

参数字典包含参数的空条目   方法的非可空类型'System.DateTime'的'endDate'   'System.Web.Mvc.ActionResult GetAllExpenses(System.String,   System.String,System.DateTime,System.DateTime)'in   'GPI.Controllers.HomeController'。可选参数必须是a   引用类型,可空类型,或声明为可选   参数。

我理解它要求endDate参数不为null,但是值正在查询字符串的变量中传递。我没理解。请帮我理解这一点。

最初我试过这个: -

/Home/GetAllExpenses?userId=@ViewBag.Id&expType=debit&startDate=@quarterThreeStartDate&endDate=@quarterThreeEndDate

并遇到同样的问题

之后我尝试了这个: -

/Home/GetAllExpenses?userId=@HttpUtility.UrlEncode(ViewBag.Id)&expType=debit&startDate=@HttpUtility.UrlEncode(quarterThreeStartDate)&endDate=@HttpUtility.UrlEncode(quarterThreeEndDate)

我再次得到同样的例外。

这是浏览器中链接的图像。您可以看到所有变量值都在那里

enter image description here

图像中的链接对应于第1个方框,即第1季度和借记

我在局部视图中有以下变量,我在querystring中传递给它们各自的链接:

var quarterOneStartDate = new DateTime(ViewBag.Year, 1, 1);
    var quarterTwoStartDate = new DateTime(ViewBag.Year, 4, 1);
    var quarterThreeStartDate = new DateTime(ViewBag.Year, 7, 1);
    var quarterFourStartDate = new DateTime(ViewBag.Year, 10, 1);

    var quarterOneEndDate = new DateTime(ViewBag.Year, 3, 31);
    var quarterTwoEndDate = new DateTime(ViewBag.Year, 6, 30);
    var quarterThreeEndDate = new DateTime(ViewBag.Year, 9, 30);
    var quarterFourEndDate = new DateTime(ViewBag.Year, 12, 31);

1 个答案:

答案 0 :(得分:-1)

因为您无法真正控制发送到控制器的数据,所以您应该使用func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { //var token was initiated as a global variable token = deviceToken.hexString() } func regDevTok(){ // Device Token let deviceToken = defaults.objectForKey("DeviceToken") as! String? if (deviceToken == nil) { let type: UIUserNotificationType = [UIUserNotificationType.Badge, UIUserNotificationType.Alert, UIUserNotificationType.Sound] let setting = UIUserNotificationSettings(forTypes: type, categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(setting) UIApplication.sharedApplication().registerForRemoteNotifications() } } 将这些字段标记为无效,然后检查缺失值的强制值并相应地输出,无论如何这是一个错误或一个成功执行的动作。