小编jos*_*shb的帖子

无法分配空值 - LINQ查询问题

我有以下LINQ查询:

DataClassesDataContext dc = new DataClassesDataContext(); 
var query = from contact in dc.Contacts
            select new
            {
                ContactId = contact.ContactId,
                LastName = contact.LastName,
                FirstName = contact.FirstName,
                Addresses = contact.Addresses,
                Phones = contact.Phones,
                DOB = contact.BirthDate,
                LastNote = contact.Notes.Max(n => n.Created), //this line causes the error
                Status = contact.ContactStatus.ContactStatusName,
                EmailAddress = contact.Emails
            };
Run Code Online (Sandbox Code Playgroud)

我获得notes集合的最大创建日期的行会导致抛出以下异常:

异常:无法将null值分配给类型为System.DateTime的成员,该类型是不可为空的值类型.

如何编写查询以允许空值进入LastNote字段?DOB字段定义为DateTime?并没有处理空值的问题.

linq

10
推荐指数
2
解决办法
2万
查看次数

用于.NET的SAML库/组件

任何人都可以推荐用于为.NET中的联合登录实现生成SAML断言的库.如果它与ASP.NET成员资格API集成,那将是理想的.

.net saml

9
推荐指数
2
解决办法
1万
查看次数

使用ReSharper进行AngularJS单元测试

我正在尝试使用ReSharper测试运行器运行AngularJS控制器的Jasmine单元测试,这样我就可以在VS 2012中的一个地方运行我的客户端和服务器端测试.

我遇到了ReSharper测试运行器失败的问题,其中包含"不确定:测试未运行"的消息.使用AngularJS Seed项目附带的测试运行器可以正常运行相同的测试.

这是我对故障排除的简单测试:

/// <reference path="~/Scripts/angular/angular.js"/>
/// <reference path="~/tests/test/lib/angular/angular-mocks.js"/>
/// <reference path="~/Scripts/app/controllers.js"/>

'use strict';

describe('controllers', function(){
  beforeEach(module('myApp.controllers'));

  it('should ....', inject(function() {
      expect(1).toEqual(1);
  }));
});
Run Code Online (Sandbox Code Playgroud)

我怀疑它与我的引用有关,因为如果我删除了调用inject,我的测试运行正常.但是,inject在angular-mocks.js(我正在引用)中定义,所以我不确定问题是什么.

有什么建议?

resharper jasmine angularjs

8
推荐指数
1
解决办法
4790
查看次数

当FormView设置为插入模式时,控制在回发后不保留值

我正在使用Page_Load事件中的ChangeMode方法将FormView的CurrentMode设置为插入模式,如下所示:

if(!Page.IsPostBack)
{
    MyFormView.ChangeMode(FormViewMode.Insert);
}
Run Code Online (Sandbox Code Playgroud)

在我的FormView插入模板中,我有一个DropDownList控件,其AutoPostBack属性设置为true.我还在插入模板中有几个其他DropDownList和TextBox控件.

每当我更改DropDownList的选择并发生回发时,我将丢失输入到控件中的所有值.奇怪的是,如果我在初始页面加载后的任何时候使用ChangeMode将FormView设置为插入模式我没有问题.我已经使用调试器逐步完成了代码,所有内容似乎都正确地发生了但是在DropDownList的事件处理程序运行之后的某些时候,所有内容似乎都被重置了.

这里发生了什么?

更新:我注意到我的FormView位于div标签内,其中runat ="server"和enableviewstate ="false".一旦我为容器div启用了viewstate,我开始看到一个稍微不同的行为.在第一次回发后,FormView仍然不保留值,但现在后续回发工作正常,并保留值.

任何想法将不胜感激.

asp.net formview

6
推荐指数
1
解决办法
8987
查看次数

Orchard CMS Application中的WebForms页面

我正在尝试在Orchard 1.2应用程序中包含一个webforms(.aspx)页面.

我已经尝试在web.config中添加回aspx处理程序

<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" /> 
Run Code Online (Sandbox Code Playgroud)

并将代码添加到Global.asax以尝试获取路由以忽略aspx请求

routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)

我在请求aspx页面时仍然收到404响应.我该如何工作?

asp.net asp.net-mvc webforms orchardcms

6
推荐指数
1
解决办法
3122
查看次数

恢复工作流服务的书签

我正在使用WF4并且有一个工作流服务,我在其中创建了一个自定义活动,该活动创建一个书签以等待其他用户输入.当使用WorkflowApplication托管工作流程时,我可以简单地调用ResumeBookmark来处理我停止的处理,但是当工作流程作为工作流程服务托管时,我似乎无法弄清楚如何恢复书签.

任何指导都会非常感激.

workflow-foundation-4

6
推荐指数
1
解决办法
2584
查看次数

jquery移动取消302重定向到外部站点

我正在尝试将DotNetOpenAuth与使用jquery mobile的网站集成.我遇到了一个问题,即jquery mobile似乎取消了302重定向到服务器响应的提供方(外部站点).

我已经尝试在mobileinit事件中使用以下内容关闭默认的jquery mobile ajax处理:

$.mobile.ajaxEnabled = false;
Run Code Online (Sandbox Code Playgroud)

如果我从图片中取出jquery mobile,则正确处理302重定向,并且与提供方的OpenID集成工作正常.

任何人都可以告诉我如何让jquery mobile正确处理302重定向到外部网站?

dotnetopenauth jquery-mobile

6
推荐指数
1
解决办法
2259
查看次数

我创建的DateTime对象和DateTime.Now之间的区别

我正在尝试使用Exchange 2007 API查询特定用户的日历可用性.我的示例代码产生以下异常:

为FreeBusyViewOptions.TimeWindow指定的持续时间无效.

这是示例代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

service.AutodiscoverUrl("email@domain.com");

DateTime startTime = new DateTime(2012, 1, 6, 7, 0, 0);

TimeWindow tw = new TimeWindow(startTime, startTime.AddHours(8));

GetUserAvailabilityResults result = service.GetUserAvailability(new List<AttendeeInfo> { new AttendeeInfo("email@domain.com") }, tw, AvailabilityData.FreeBusyAndSuggestions);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我用以下内容替换我的startTime赋值它可以工作:

DateTime startTime = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

我创建的DateTime对象与DateTime.Now生成的对象之间有什么区别.我在调试时仔细检查了它们,但找不到区别.

有任何想法吗?

c# exchange-server-2007 exchangewebservices

6
推荐指数
1
解决办法
2581
查看次数

使用Orchard CMS的单页设计

我有一个客户想要为他的网站设计单页,每个"页面"的内容在用户导航网站时使用javascript显示/隐藏.

我不确定使用Orchard来解决这个问题的最佳方法.一种选择是将内容全部放在单个页面内容项上,但是您失去了使用Orchard的导航功能的能力,并且不能让客户考虑页面方面的管理.

有没有人有关于如何在Orchard CMS中进行最佳设置的想法或经验?


这是我根据Bertrand的建议使用的解决方案:

public ActionResult Display(int id)
{
     var contentItem = _contentManager.Get(id, VersionOptions.Published);
     dynamic model = _contentManager.BuildDisplay(contentItem);
     var ctx = _workContextAccessor.GetContext();
     ctx.Layout.Metadata.Alternates.Add("Layout_Null");
     return new ShapeResult(this, model);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个带有控制器的新模块,其中包含上面的操作方法.action方法获取内容部分id的参数._contentManager和_workContextAccessor对象正在注入控制器.Layout.Null.cshtml视图的创建与Bertrand建议的完全一样.

orchardcms

5
推荐指数
1
解决办法
3444
查看次数

修改LINQ查询的排序顺序

我期望以下LINQ查询根据FirstName排序,但OrderBy扩展方法似乎没有效果.

DataClassesDataContext dc = new DataClassesDataContext();

var query = from contact in dc.Contacts
            select contact;

query.OrderBy(c => c.FirstName);
Run Code Online (Sandbox Code Playgroud)

当我在初始查询定义中包含orderby时,一切正常,但我希望能够在我的代码中稍后根据条件对其进行修改.

知道为什么这不起作用吗?

linq

4
推荐指数
3
解决办法
7607
查看次数