小编Tom*_*sen的帖子

jQuery datepicker,onSelect不起作用

我无法onSelect开发我的jQuery datepicker.

继承我的代码:

<script type="text/javascript">
$(function() {
    $('.date-pick').datePicker( {
        onSelect: function(date) {
            alert(date)
        },
        selectWeek: true,
        inline: true,
        startDate: '01/01/2000',
        firstDay: 1,
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

这就像它没有注册onSelect功能.我究竟做错了什么?

jquery datepicker onselect

49
推荐指数
4
解决办法
20万
查看次数

选择正确的.NET架构.WCF?WPF/Forms,ASP.NET(MVC)?

我的情况是我必须从底部设计并实现一个相当大的系统.我有一些(实际上很多)关于架构的问题,我希望你的评论和想法.

我不希望我在这里写得太多,但我想让大家知道系统是什么.

有关应用程序的快速信息,如果您愿意,请阅读:我无法分享有关该项目的更多细节,但基本上它是一个系统,我们为客户提供管理其用户的服务.我们有一条热线,用户拨打电话,我们的热线使用(Windows)应用程序(内联网)来管理用户的数据等.客户还有一个Web应用程序,他们可以在其中查看报告,有关其业务和用户的信息,以及修改数据的能力.修改数据不仅仅是地址等用户数据,还包括用户拥有的产品/服务的信息,这些信息可能很复杂.

这些应用程序将构建在Microsoft .NET Framework 4上,并带有MS SQL Server 2008数据库.将有一些应用程序必须访问此数据库,例如:

  • 内联网应用(由我们和我们的热线使用)
  • 客户Web应用程序类型1
  • 客户Web应用程序类型2
  • 客户Web应用程序类型n不同的应用程
  • ...

现在我的大问题是我应该为这样一个系统使用哪些.NET部件.对于"后端",我考虑过使用Windows Communication Foundation: 可能的WCF解决方案 WCF会是一个不错的选择吗?

Intranet应用程序将是一个必须编辑数据库中的大量记录的应用程序.必须使用键盘轻松导航(快速使用).有一个功能,如"找到客户,找到,查找,选择此并更新".开发此应用程序的最佳选择是什么?它是WPF还是旧的Windows窗体?我不需要像WPF那样的所有花哨的图形功能,但是应用程序必须看起来不错(可能类似于新的Visual Studio/Office工具).

对于网页也存在同样的问题.他们有很多相同的工作要做,但没有内网应用程序那么多的功能,而且数据量不同(更少).

这是我现在的问题.我希望能够进行讨论,这将使我看到其中一些技术,帮助我决定架构.

我想事先表示感谢,并且让大家都知道,任何想法都会受到高度赞赏.


编辑1:似乎很多人都同意我们应该使用WCF.在数据层中引入ORM映射器和使用WCF的服务层时,必然会出现性能损失?你对此有何评论?

另一个不断涌现的问题是我们如何处理身份验证和角色.Intranet应用程序具有"主"访问权限(没有限制).但是,当客户从Web应用程序检索有关其用户的信息时,返回的内容取决于他们的"服务级别"以及与客户相关的一些其他参数.处理这个问题的最佳方法是什么?有任何模式/最佳实践吗?

.net architecture wpf wcf

10
推荐指数
1
解决办法
6508
查看次数

在WebAPI中绑定抽象操作参数

我需要将传入的HTTP POST请求与正文中的数据绑定到具体类型,具体取决于ProductType数据中的分母.这是我的Web API 2操作方法:

[HttpPost, Route]
public HttpResponseMessage New(ProductBase product)
{
    // Access concrete product class...

    if (product is ConcreteProduct)
        // Do something
    else if (product is OtherConcreteProduct)
        // Do something else
}
Run Code Online (Sandbox Code Playgroud)

我首先考虑使用自定义模型绑定器,但似乎无法在此时访问请求主体:

对于复杂类型,Web API尝试使用媒体类型格式化程序从邮件正文中读取值.

我无法真正看到媒体类格式化器如何解决这个问题,但我可能会遗漏一些东西.你会如何解决这个问题?

c# model-binding asp.net-web-api

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

IEditableObject实现

我一直在寻找实现一个实现IEditableObject的泛型类,以便我的一些ViewModel继承,以支持取消对ViewModel中属性的编辑.这主要用于WPF中具有"确定"和"取消"按钮的模式对话框.

我在网上找到了以下实现:

这对我来说似乎过于复杂,但我不确定我是否遗漏了他们提供的一些功能.对于一个他们不支持深拷贝,所以在我的世界中我们可以使用MemberwiseClone来执行浅拷贝.就像是:

private Item backupCopy;
private bool inEdit;

public void BeginEdit()
{
    if (inEdit) return;
    inEdit = true;
    backupCopy = this.MemberwiseClone() as Item;
}

public void CancelEdit()
{
    if (!inEdit) return;
    inEdit = false;
    this.Name = backupCopy.Name;
}

public void EndEdit()
{
    if (!inEdit) return;
    inEdit = false;
    backupCopy = null;
}
Run Code Online (Sandbox Code Playgroud)

这个例子当然应该是ViewModel继承的通用抽象基类,但你明白了......

这有什么区别?除了不支持深拷贝之外,我的方法有哪些缺点?你如何修改它以支持深层复制(不确定是否有必要)?

更新:

发现这篇文章显示了比使用反射更好的实现.比我链接的其他两篇文章简单得多:

我们如何扩展它以支持深层复制?

c# wpf

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

Powershell和SQL参数.如果为空字符串,则传递DBNull

我有这个参数:

$objDbCmd.Parameters.Add("@telephone", [System.Data.SqlDbType]::VarChar, 18) | Out-Null;
$objDbCmd.Parameters["@telephone"].Value = $objUser.Telephone;
Run Code Online (Sandbox Code Playgroud)

字符串$objUser.Telephone可以为空.如果它是空的,我怎么能把它转换成[DBNull]::Value

我试过了:

if ([string]:IsNullOrEmpty($objUser.Telephone)) { $objUser.Telephone = [DBNull]::Value };
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

使用"0"参数调用"ExecuteNonQuery"的异常:"无法将参数值从ResultPropertyValueCollection转换为String."

如果我将它转换为字符串,它会插入一个空字符串"",而不是DBNull.

如何实现这一目标?

谢谢.

sql powershell dbnull

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

在分层应用程序中验证

我想知道在ASP.NET MVC应用程序中验证数据库约束(例如UNIQUE)的最佳方法是什么,在构建时考虑到DDD,底层是Application Layer(应用程序服务),Domain Layer(域模型)和基础设施层(持久性逻辑,日志记录等).

我一直在查看大量的DDD样本,但是他们中没有提到的是如何在存储库中进行验证(我想这是这种类型的验证适合的地方).如果你知道任何这样做的样品,请分享它们将非常感激.

更具体地说,我有两个问题.你会如何进行实际验证?您是否通过查询数据库明确检查客户名称是否已存在,或者您是否尝试将其直接插入数据库并捕获错误(如果有的话)(看起来很乱)?我更喜欢第一个,如果选择它,是应该在存储库中完成,还是应该是应用程序服务的工作?

检测到错误时,如何将其传递给ASP.NET MVC,以便能够很好地通知用户错误?最好使用,ModelStateDictionary以便在表格上轻松突出错误.

在Microsoft Spain的N-Lyered应用程序中,他们使用IValidatableObject界面,最简单的属性验证放在实体本身,例如:

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
    var validationResults = new List<ValidationResult>();

    if (String.IsNullOrWhiteSpace(this.FirstName))
        validationResults.Add(new ValidationResult(Messages.validation_CustomerFirstNameCannotBeNull, new string[] { "FirstName" }));

    return validationResults;
}
Run Code Online (Sandbox Code Playgroud)

在实体持久化之前,将调用Validate消息以确保属性有效:

void SaveCustomer(Customer customer)
{
    var validator = EntityValidatorFactory.CreateValidator();

    if (validator.IsValid(customer)) //if customer is valid
    {
        _customerRepository.Add(customer);
        _customerRepository.UnitOfWork.Commit();
    }
    else
        throw new ApplicationValidationErrorsException(validator.GetInvalidMessages<Customer>(customer));
}
Run Code Online (Sandbox Code Playgroud)

然后可以在MVC应用程序中捕获ApplicationValidationErrorsException,并且可以解析验证错误消息并将其插入到ModelStateDictionary.

我可以将所有验证逻辑添加到SaveCustomer方法中,例如,使用给定列(UNIQUE)查询数据库是否已存在客户.也许这没关系,但我宁愿validator.IsValid(或类似的东西)会为我做这个,或者在Infrastructure层再次执行验证(如果它属于这里,我不确定).

你怎么看?你怎么做呢?我非常有兴趣深入了解分层应用程序中的不同验证技术.


可能的解决方案#1

如果验证逻辑不能在表示层完成(如Iulian Margarintescu建议)并且需要在服务层完成,那么如何将验证错误传递到表示层?

微软在这里有一个建议(见清单5).您如何看待这种方法?

c# validation model-view-controller domain-driven-design repository

7
推荐指数
1
解决办法
2557
查看次数

EF Core 一对多,带有可选的主键

我试图让 EF Core 2 在没有指定外键的现有数据库上工作,并且“外键”和主键键可以为空。

在 上使用此属性映射Foo

e.HasOne(x => x.User)
 .WithMany()
 .HasPrincipalKey(x => x.SID)
 .HasForeignKey(x => x.UserId);
Run Code Online (Sandbox Code Playgroud)

其中主键和外键类型都是int?,因为User和 都User.SID被允许null

这里奇怪的事情当然User.SID是允许的null,但不幸的是我无法纠正它。

EF 在查询集合时返回此异常:

SqlNullValueException: 数据为 Null。不能对 Null 值调用此方法或属性。

InvalidOperationException:读取属性“User.Id”的数据库值时发生异常。预期类型为“System.Nullable`1[System.Int32]”,但实际值为空。

有没有办法指定这个映射?

我可以通过忽略User属性并IQueryable像这样手动连接来做到这一点:

_dbContext.Foo
          .Join(_db.Users,
                kf => kf.UserId,
                u => u.SID, 
                (foo, user) => new Foo { User = user })
Run Code Online (Sandbox Code Playgroud)

但我宁愿避免这种情况。

c# entity-framework-core

7
推荐指数
0
解决办法
434
查看次数

EF 4.1 RTM - EntityTypeConfiguration

我一直在使用EF Code First CTP5和每个实体的专用映射类,如下所示:

public class UserMapping : EntityTypeConfiguration<User>
{
    public UserMapping()
    {
        ToTable("Users");

        HasKey(t => t.ID);
        Property(t => t.ID).HasColumnName("user_id");

        Property(t => t.Name).HasColumnName("name");
    }
}
Run Code Online (Sandbox Code Playgroud)

并按照Jonas Cannehag描述的方式加载它们:http://areaofinterest.wordpress.com/2010/12/08/dynamically-load-entity-configurations-in-ef-codefirst-ctp5/

但这在RTM中不起作用,我无法弄清楚如何使用专用的映射类.你呢?:-)

entity-framework code-first

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

ASP.NET用户控件和jQuery对话框

在我的页面上,我得到了以下用户控件:

<div class="editFormDialog" style="display: none; font-size: 12px;">
    <mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" />
</div>
Run Code Online (Sandbox Code Playgroud)

这个UC有一个公共属性,它接受一个DataSet,并更新UC中的一些字段.

因此,当我按下我的页面上的按钮时,它会在UC上调用此属性,并且UC将使用DataSet中的数据进行更新.

到现在为止还挺好.当我希望UC成为jQuery UI对话框时出现问题.

首先我创建对话框:

$(document).ready(function() {
    $('.editFormDialog').dialog({
        autoOpen: false,
        height: 700,
        width: 780,
        modal: true,
        bgiframe: true,
        title: 'Rediger',
        open: function(type, data) {
            $(this).parent().appendTo("form");
            $(this).css('display', 'block');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

我不想在按钮上打开(这不是ASP.NET按钮,纯HTML):

$('#btnEdit').live('click', function() {
    $('.editFormDialog').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)

对话框打开,但UC不包含正确的数据.页面加载时,UC将使用默认数据进行更新.然后用户单击一个按钮,数据会发生变化但UC不会更新.它仍包含默认数据.那就是问题所在.

你知道为什么吗?

将非常感谢帮助!

asp.net jquery user-controls dialog

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

在sharepoint加载项中检索查询字符串

我正在开发一个Sharepoint 2013加载项,我需要检索原始请求的查询字符串.

用户通过电子邮件链接到我们的加载项,我们需要提供一些上下文.请求加载项如下:https: //x.sharepoint.com/MyAddIn?p = 10

是否可以在我的加载项中检索p的值?

sharepoint sharepoint-2013 sharepoint-apps

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