小编Aus*_*tin的帖子

如何在另一个用户控件中使用asp.net用户控件?

我有一个用户控件(gallery.ascx),我想photo.ascx在库控件中使用该控件.我已将此寄存器添加到顶部gallery.ascx,但仍无法找到照片:

<%@ Register TagPrefix="ssctrl" TagName="photo" Src="controls/photo.ascx" %>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# asp.net user-controls ascx

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

如何在c#中读取excel文件而不丢失任何列?

我一直在使用OleDb连接成功读取excel文件已有一段时间了,但我遇到了一个问题.我有一个人试图上传第一列中没有任何内容的Excel电子表格,当我尝试读取该文件时,它无法识别该列.

我目前正在使用以下OleDb连接字符串:

提供商= Microsoft.Jet.OLEDB.4.0;
数据源= c:\ test.xls;
扩展属性="Excel 8.0; IMEX = 1;"

因此,如果excel文件中有13列,那么我回来的OleDbDataReader只有12列/字段.

任何见解将不胜感激.

.net c# excel

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

如何使用linq-to-sql同时增加页面查看次数?

我有一个使用Linq-to-SQL的ASP.NET MVC 3 Web应用程序用于我的数据访问层.我每次调用Details操作时都试图增加一个Views字段,但是如果两个人碰巧同时遇到了这个动作,我会在db.SubmitChanges()上收到"Row not found or changed"错误.

public ActionResult Details(int id)
{
    DataClassesDataContext db = new DataClassesDataContext();

    var idea = db.Ideas.Where(i => i.IdeaPK == id).Single();

    idea.Views++;

    db.SubmitChanges();

    return View(new IdeaViewModel(idea));
}
Run Code Online (Sandbox Code Playgroud)

我可以在我的.dbml(数据模型)中将Views字段的UpdateCheck设置为"Never",这样可以消除错误,但是想法记录可以使用相同的Views count更新两次.即

First instance of Details action gets idea record with Views count of 1.
Second instance of Details action gets idea record with Views count of 1.
First instance increments Views to 2
First instance commits
Second instance increments Views to 2
Second instance commits

Result: Views …
Run Code Online (Sandbox Code Playgroud)

c# architecture asp.net-mvc concurrency linq-to-sql

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

如何获取导致MVC中"从客户端检测到潜在危险的Request.Form值"的表单值?

我有一个MVC3应用程序,它有一个自定义HandleErrorAttribute,以便我可以通过电子邮件发送错误.我经常得到"从客户端检测到一个有潜在危险的Request.Form值",但它只显示导致异常的表单值的前几个字符.我希望看到输入的整个表单值,以便在输入是恶意的或用户意外时更好地了解.但是,当我尝试在HandleErrorAttribute中提取表单值时,它会抛出相同的错误!任何想法如何从Request.Form获取表单值而不导致我的异常处理程序中的验证?

public class HandleErrorLogAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext context)
    {
        base.OnException(context);

        //Record Error
        string errorDetails = HttpUtility.HtmlEncode(context.Exception.ToString());

        // Throws "otentially dangerous..." error here
        foreach (var key in context.RequestContext.HttpContext.Request.Form.AllKeys)
        {
            errorDetails += key + "=" + HttpUtility.HtmlEncode(context.RequestContext.HttpContext.Request.Form[key]);
        }

        // Send Email with errorDetails
    }
}
Run Code Online (Sandbox Code Playgroud)

c# error-handling asp.net-mvc request.form

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

如何确定iCloud文件夹中是否存在文件?

我有一个iOS应用程序,可以在iCloud中存储文件.当我启动应用程序时,我想确定以前的设备是否已经上传了任何文件.我启动了第一台设备并将文件添加到iCloud(我可以在Mac上的Mobile Documents文件夹中看到它们).然后我在第二个设备上启动应用程序并尝试使用以下NSMetadataQuery来查看是否已上载任何文件,但它返回0结果.如果我继续运行该查询,大约8-10秒后它会返回结果.

iCloudQuery = [[NSMetadataQuery alloc] init];

iCloudQuery.searchScopes = @[NSMetadataQueryUbiquitousDataScope];

NSString *filePattern = [NSString stringWithFormat:@"*.%@", @"txt"];

iCloudQuery.predicate = [NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, filePattern];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iCloudQueryDidFinishGathering:) name:NSMetadataQueryDidFinishGatheringNotification object:iCloudQuery];

[iCloudQuery startQuery];
Run Code Online (Sandbox Code Playgroud)

当我收到通知时,resultCount为0表示查询

- (void)iCloudQueryDidFinishGathering:(NSNotification *)notification
{    
    NSMetadataQuery *query = [notification object];
    [query disableUpdates];
    [query stopQuery];

    NSLog(@"Found %d results from metadata query", query.resultCount);
}
Run Code Online (Sandbox Code Playgroud)

如果文件存在于iCloud中,NSMetadataQuery是否应该返回resultCount,即使它尚未下载?有没有办法测试一个文件是否存在,而不是尝试超过和15-30秒后超时?

objective-c ios icloud nsmetadataquery

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

我可以在Entity Framework SubQuery中使用扩展方法吗?

我正在尝试使用Entity Framework整合访问不同表的逻辑.我创建了一个扩展方法,用于从我的注册实体中提取所有注册人:

public static IEnumerable<Registration> Attending(this IEnumerable<Registration> registrations)
{
    return registrations.Where(r => r.Status == RegistrationStatus.Paid || r.Status == RegistrationStatus.Assigned || r.Status == RegistrationStatus.Completed);
}
Run Code Online (Sandbox Code Playgroud)

这适用于这样的查询:

var attendees = db.Registrations.Attending().ToList();
Run Code Online (Sandbox Code Playgroud)

但是在子查询中使用它时不起作用:

ProductTotals = db.Products.Where(p => p.EventID == ev.Id).Select(p => new ProductSummaryViewModel
{
    ProductID = p.ProductID,
    ProductName = p.Name,
    Registrations = p.Registrations.Attending().Count(),
}).ToList();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

LINQ to Entities无法识别方法'System.Collections.Generic.IEnumerable 1[Registration] Attending(System.Collections.Generic.IEnumerable1 [Registration])'方法,并且此方法无法转换为商店表达式.

有没有办法在子查询中重用该代码?

c# linq sql-server asp.net-mvc entity-framework

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

如何在我的NSCollectionView的视图子类中以编程方式绑定?

我已成功创建了一个NSCollectionView,并在IB中的视图原型中添加了一个标签,绑定到我所代表的对象的属性.我现在想以编程方式创建一个NSButton和NSTextField,其中NSTextField绑定到我表示的对象的属性.单击按钮时,我想显示并隐藏NSTextField.

我遇到的问题是,如果我在视图的initWithCoder方法中为控件添加初始化代码,并且在视图的awakeFromNib中绑定,则绑定不会被连接起来.如果我将我的控件的初始化放在awakeFromNib中,当单击该按钮时,我无法访问视图中的控件(使用NSLog打印时它们为null).

从我可以告诉它看起来问题可能是NSCollectionView的工作方式是,它创建了一个视图实例,然后复制它以了解集合视图中的每个对象的方式.如何获取初始化按钮和绑定以使用原型的副本?

下面是我的初始化代码和我在子类视图的awakeFromNib中的绑定:

SubView.h

@interface SubView : NSView {
    NSButton *button;
    NSTextField *textField;
    IBOutlet NSCollectionViewItem *item; // Connected in IB to my NSCollectionViewItem
}

- (IBAction)buttonClicked:(id)sender;

@end
Run Code Online (Sandbox Code Playgroud)

SubView.m

@implementation SubView

- (id)initWithCoder:(NSCoder *)decoder
{
    id view = [super initWithCoder:decoder];

    button = [[NSButton alloc] initWithFrame:NSMakeRect(50, 95, 100, 20)];
    [button setTitle:@"Begin Editing"];
    [button setTarget:self];
    [button setAction:@selector(buttonClicked:)];
    [self addSubview:button];

    textField = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 10, 100, 75)];
    [self addSubview:textField];

    return(view);
}

- (void)awakeFromNib
{   
        // Bind the textField to the representedObject's name …
Run Code Online (Sandbox Code Playgroud)

cocoa binding objective-c nscollectionview

4
推荐指数
1
解决办法
3908
查看次数

如何为最小和最大数量的复选框创建ASP.NET MVC3验证器?

我想要一个可重复使用的验证器,我可以在一组复选框字段上使用它,这将允许我指定要选择的最小数字和可以选择的最大数字.我不确定如何创建服务器端检查和客户端验证,以使用不引人注目的javascript挂钩到jQuery验证框架.

这个问题似乎是客户端适配器的良好开端,但是如何将它们组合在一起以在服务器上验证它?

asp.net-mvc unobtrusive-javascript jquery-validate asp.net-mvc-3

4
推荐指数
1
解决办法
1249
查看次数

我可以在PostAuthorizeRequest方法中启动MVC Mini Profiler吗?

我正在使用MVC Mini事件探查器,并且仅向处于“事件探查器”角色的经过身份验证的用户显示事件探查器。MiniProfiler.cs中提供的示例使用的是AuthenticateRequest方法来确定是否应该停止分析,但是我切换了我的方法以使用PostAuthorizeRequest(在阅读完此问题之后),以便可以访问IPrincipal和IsInRole方法。我可以仅在PostAuthorizeRequest方法中启动分析器,还是应该继续停止并在PostAuthorizeRequest中丢弃结果?每个请求启动和停止分析器的开销是多少?

当前代码:

public void Init(HttpApplication context)
{
    context.BeginRequest += (sender, e) =>
    {
        MiniProfiler.Start();
    };

    context.PostAuthorizeRequest += (sender, e) =>
    {
        var user = ((HttpApplication)sender).Context.User;

        if (user == null || !user.Identity.IsAuthenticated || !user.IsInRole("Profiler"))
        {
            MvcMiniProfiler.MiniProfiler.Stop(discardResults: true);
        }
    };

    context.EndRequest += (sender, e) =>
    {
        MiniProfiler.Stop();
    };
}
Run Code Online (Sandbox Code Playgroud)

建议代码:

public void Init(HttpApplication context)
{
    context.PostAuthorizeRequest += (sender, e) =>
    {
        var user = ((HttpApplication)sender).Context.User;

        if (user != null && user.Identity.IsAuthenticated && user.IsInRole("Profiler"))
        {
            MiniProfiler.Start();
        }
    };

    context.EndRequest += …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc mvc-mini-profiler

4
推荐指数
1
解决办法
893
查看次数

如果计划的Web作业已经运行,它是否会启动另一个计划的Web作业实例?

我有一个Azure Web作业,计划使用settings.job文件中的cron表达式每5分钟运行一次.如果该过程未在5分钟内完成,Azure将启动该作业的另一个实例,还是会等到第一个结束?

我想确保它等到第一个完成所以它没有运行多个实例.

cron azure azure-webjobs

4
推荐指数
1
解决办法
344
查看次数

VS 2013中的构建后任务失败

在Visual Studio 2012中,我运行了以下Post-Build任务来编译和组合我的LESS文件:

$(MSBuildBinPath)\msbuild.exe "$(ProjectDir)MSBuildSettingsLess.xml"
Run Code Online (Sandbox Code Playgroud)

我的MSBuildSettingsLess.xml看起来像:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
    <Target Name="CompileDotlessCss">
        <ItemGroup>
            <Binaries Include="*.dll;*.exe"/>
        </ItemGroup>

        <!-- Compile dotLess CSS into minified full CSS -->
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\responsive.less $(ProjectDir)..\GMHC\Content\bootstrap-responsive.less.css"/>
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\bootstrap.less $(ProjectDir)..\GMHC\Content\bootstrap.less.css"/>
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

在Visual Studio 2013中,失败并出现以下错误:

命令"C:\ Program Files(x86)\ MSBuild\12.0\bin\msbuild.exe"C:\ Users\Administrator\Documents\Projects\MedicalMissions\GMHC\MSBuildSettingsLess.xml退出,代码为9009.

输出窗口显示以下内容:

1>'C:\ Program'不被识别为内部或外部命令,
1>可操作程序或批处理文件.
1> C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5):错误MSB3073:命令"C:\ Program Files(x86)\ MSBuild\12.0\bin\msbuild.exe"C:\ Users\Administrator\Documents\Projects\MedicalMissions\GMHC\MSBuildSettingsLess.xml"

知道为什么失败或者如何走到最底层?

msbuild msbuild-task less visual-studio-2013

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