小编Bob*_*ley的帖子

Application_Start没有开火?

我有一个ASP.NET MVC(beta)应用程序,我正在研究,并且我无法弄清楚我是否做错了什么,或者我Application_Start在Global.asax.cs中的方法实际上是不是在我尝试时触发调试应用程序.

我在我的Application_Start方法中的一行上放了一个断点,并且我希望当我尝试调试应用程序时断点应该被击中...但它永远不会.不是在我重置IIS之后,不是在我重新启动之后,不是.我错过了什么吗?为什么这种方法永远不会被调用?

c# asp.net-mvc

141
推荐指数
8
解决办法
9万
查看次数

使用Moq模拟HttpContextBase

我有一个单元测试夹具,我正在尝试在ASP.NET MVC控制器上测试一个ControllerAction,该控制器用于Web应用程序上的成员函数.我正在尝试模拟测试的HttpContext.正在测试的ControllerAction实际上设置了HttpContext的属性,例如Session值,Response.Cookies值等.这不是所有代码,但这里是我试图运行的测试的粗略示例:

[Test]
public void ValidRegistrationDataSuccessfullyCreatesAndRegistersUser()
{
    var context = new Mock<HttpContextBase>() {DefaultValue = DefaultValue.Mock};
    context.SetupAllProperties();
    var provider = new Mock<MembershipProvider>(new object[] {context.Object});
    var controller = new AccountController(context.Object, provider.Object);
    // This just sets up a local FormCollection object with valid user data 
    // in it to use to attempt the registration
    InitializeValidFormData();
    ActionResult result = controller.Register(_registrationData);
    Assert.IsInstanceOfType(typeof(ViewResult), result);
    // Here is where I'd like to attempt to do Assertions against properties 
    // of the HttpContext, like ensuring that a Session …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc moq

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

IIS7,SQL 2008和ASP.NET MVC安全性

我有一个我正在研究的ASP.NET MVC应用程序.我一直在使用IIS6和SQL 2008 Express在Windows Server 2003上进行开发,一切都运行良好.我最近决定试用Windows 7测试版,所以现在我正在使用IIS7,并且遇到了与我的数据库连接的问题,我似乎无法弄清楚.

我可以很好地运行/调试应用程序,但每当我尝试访问需要访问数据库的页面时,我都会收到以下错误:

"无法打开登录请求的数据库"MyDatabaseName".登录失败.用户'IIS APPPOOL\MyApplicationName'登录失败."

我显然有一些错误的安全配置设置,但我似乎找不到任何关于如何正确设置它的好文档.我试过在数据库上给予NETWORK SERVICE权限,但这似乎不起作用.任何人都知道我需要做什么来给这个数据库"IIS APPPOOL\MyApplicationName"权限?我错过了一些明显的东西吗

谢谢...

security asp.net-mvc iis-7 sql-server-2008

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

PdfSharp:在文档中旋转页面

我正在创建一个Web应用程序,用于在我们的数据库中维护PDF文档,这些文档在我们接收传真时通过自动系统进入.用户需要能够查看这些文档,并且当他们以错误的方式放入传真机时,他们需要能够对这些文档执行的一个更常见的事情是翻转/旋转单个页面.这几乎总是180度旋转页面.我已经创建了一个函数来执行此操作,这似乎有效,但只是第一次调用它.对此功能的任何后续调用似乎都不再起作用.与此函数相关的另一个奇怪的事情是,我还有另一个被调用的方法,它会在选定位置向文档添加一些文本.我传入文本和一些坐标,并将文本写入文档中的那些坐标,一切都很好.这里的问题是,该文件被旋转(在一个时间它旋转),如果用户试图将文本添加到某个文档,似乎扭转它放置在文字的坐标,文字倒置.

所有这些告诉我,最终,我正在以某种方式错误地进行页面轮换.我似乎无法找到任何关于如何以正确的方式在PdfSharp文档中旋转页面的好样本,因此一些指导将非常有用并且非常感激.提前致谢.

这是我目前用于旋转页面和向页面添加文本的代码:

// This is how I'm rotating the page...
public PdfDocument FlipPage(byte[] documentSource, int pageNumber)
{
    using (var stream = new MemoryStream())
    {
        stream.Write(documentSource, 0, documentSource.Length);
        var document = PdfReader.Open(stream);
        var page = document.Pages[pageNumber - 1];
        page.Rotate = 180;

        return document;
    }
}

// This is how I'm adding text to a page...
public static void AddTextToPage(this PdfDocument document, int pageNumber, Annotation annotation)
{
    var page = document.Pages[pageNumber - 1];
    annotation.TargetHeight = …
Run Code Online (Sandbox Code Playgroud)

c# pdfsharp

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

如何处理主干marionette初始化程序中的异步代码

我正在尝试使用marionette插件组合骨干应用程序,并且在使初始化程序按照我预期的方式工作时遇到一些麻烦.我有以下代码:

var MyApp = new Backbone.Marionette.Application();

MyApp.addRegions({
    region1 : '#div1',
    region2 : '#div2'
});

MyApp.Resources = { };

MyApp.bind('initialize:before', function (options) {
    // display a modal dialog for app initialization
    options.initMessageId = noty({
        text : 'Initializing MyApp (this should only take a second or two)',
        layout : 'center',
        speed : 1,
        timeout : false,
        modal : true,
        closeOnSelfClick : false
    });
});

MyApp.addInitializer(function (options) {
    $.ajax({
        url: options.apiUrl + '/my-app-api-module',
        type: 'GET',
        contentType: 'application/json; charset=utf-8',
        success: function (results) {
            MyApp.Resources.urls …
Run Code Online (Sandbox Code Playgroud)

backbone.js marionette

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

Dapper execute存储过程引发关于多映射的ArgumentException

我有一个存储过程,我正在尝试使用Dapper执行,这会引发一个看起来与我正在尝试做的事情无关的错误,尽管我似乎无法弄清楚我在做什么错误.

这是我试图调用的存储过程的签名:

ALTER PROCEDURE [dbo].[stp_UpdateInboundDaf]
    @InboundType varchar(255),
    @Id bigint,
    @UserId bigint,
    @DonationID bigint = NULL,
    @StatusId int = NULL,
    @FinalFlag bit = NULL,
    @ValidatedFlag bit = NULL,
    @SignedFlag bit = NULL
AS ...
Run Code Online (Sandbox Code Playgroud)

这是我为尝试调用该过程而编写的代码:

_cnx.Query("stp_UpdateInboundDaf", new
{
    InboundType = parameters.InboundType,
    Id = parameters.Id,
    UserId = parameters.UserId,
    DonationId = parameters.DonationId,
    StatusId = parameters.StatusId,
    FinalFlag = parameters.IsFinal,
    ValidatedFlag = parameters.Validated,
    SignedFlag = parameters.Signed
}, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)

这些是传入的参数:

在此输入图像描述

这是我得到的错误:

"当使用多映射API时,如果您有除Id参数名称以外的密钥,请确保设置splitOn参数:splitOn"

UPDATE

SqlMapper.GetDynamicSerializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing)方法引发了错误.这是错误位置和堆栈跟踪:

在此输入图像描述

有任何想法吗?

我使用的是小巧玲珑的当前版本(我 …

dapper

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

TryUpdateModel无法按预期工作

我正在开发一个ASP.NET MVC项目,允许用户对对象的属性进行批量编辑.该实现是一种类似"向导"的形式,其过程分为四个阶段,如下所示:

  1. "选择要编辑的属性" - 第一页将向用户显示一个复选框列表,表示要编辑的每个属性.用户应检查他们想要编辑的属性,然后选择"继续".
  2. "编辑所选属性" - 第二页将向用户显示不同"编辑器"的列表,这些编辑器对于他们在第一页上选择的每个属性都是唯一的.
  3. "查看您的更改" - 此页面将允许用户查看他们对所选属性所做的更改.
  4. "提交您的更改" - 此页面实际上会针对所选对象集合提交有关用户希望对所选属性进行编辑的信息.

非常坦率的.

正如我所提到的,"编辑器"对于每个属性都是唯一的,并且可以在其上具有不同控件的任意组合.一旦用户进行了编辑并且应用程序将该信息发布到"评论"页面,我就是我当前遇到问题的地方.

我们开发了"EditorWorker"类的概念,该类对每个属性都是唯一的,它负责生成每个编辑器所需的ViewModel,但也负责创建/返回(在"Review"页面控制器操作中)对象是可以绑定发布数据的编辑器的"模型"对象,然后可以用它来显示已编辑的数据以供查看.此对象应具有与编辑器中控件的ID匹配的属性,以便可以进行模型绑定.

我已经得到了"EditorWorker"创建并返回所需的类,但由于某些原因,当我打电话TryUpdateModel并传入类,它的属性没有得到填充作为方法调用的结果,因为我希望他们来.我已经验证了值是在发布的FormCollection中.下面是我试图执行此操作的控制器操作的代码.如果有人可以帮助我理解为什么TryUpdateModel不在这种情况下工作,我会非常感激.

[HttpPost]
public virtual ActionResult Review(ReviewBatchViewModel model)
{
    var selectedAttributes = GetSelectedAttributes(model.SelectedAttributeIds.Split(',').Select(i => Int64.Parse(i)).ToArray());
    var workers = new List<IEditorWorker>();
    var reviewData = new Dictionary<ViewAttribute, IEditData>();
    foreach (var attribute in selectedAttributes)
    {
        if (!string.IsNullOrEmpty(attribute.EditorWorker)) // If there is no EditorWorker defined for this object, move on...
        {
            var worker = ServiceLocator.Current.GetInstance(Type.GetType(string.Format("{0}.{1}", EditorWorkerNamespace, attribute.EditorWorker)));
            var attributeEditData = ((IEditorWorker)worker).LoadEditData();
            if (TryUpdateModel(attributeEditData))
                model.EditData.Add(attributeEditData); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3

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