小编Pau*_*les的帖子

PRG模式是否与AJAX表单帖子不兼容?

我正在为我的所有表单使用post-redirect-get模式,但现在需要添加AJAX功能来改善用户体验.我最初的想法是两者不混合.

在PRG场景中,我会发布我的帖子操作,如果存在验证错误,则会重定向回我的get操作,否则重定向到我的成功获取操作.

在AJAX场景中,我需要以任一方式返回局部视图.更典型的是,我会首先检查它是否是一个AJAX请求.如果是,则返回局部视图,否则返回视图.

有什么想法或建议吗?

ajax asp.net-mvc post-redirect-get

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

如何使用Castle Windsor在MVC中注入UrlHelper

我有一个依赖于UrlHelper的组件,我需要使用Castle Windsor注册.UrlHelper反过来又对RequestContext(和RouteCollection)有所了解.

现在我的控制器有一个类型为UrlHelper的Url属性,但据我所知,它无法真正访问它.

注册我的UrlHelper依赖项的最有效方法是什么(使用流畅的配置)?

castle-windsor asp.net-mvc-2

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

使用内部SecurityException抛出异常仅在ASP.NET MVC中显示内部异常

如果我将以下行添加到ASP.NET MVC操作方法

throw new Exception("outer", new SecurityException("inner"));
Run Code Online (Sandbox Code Playgroud)

实际显示在死亡黄色屏幕上的错误是内部SecurityException,绝对没有提到外部异常.

抛出:SecurityException

说明:应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.

异常详细信息:System.Security.SecurityException:inner

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[SecurityException:inner]

这是预期的行为吗?

外部异常的类型似乎并不重要.即使它是另一个SecurityException,也不会显示该消息.默认的SecurityException错误消息是如此模糊,我想捕获它并添加一些更具体的信息.如果我不包含原始的SecurityException作为innerException,但是理想情况下我想这样做,这样可以正常工作.

asp.net asp.net-mvc exception-handling code-access-security

6
推荐指数
2
解决办法
1049
查看次数

得到固定高度div继续下一行

一点都不确定这是可能的,但是在机会之外,这就是我需要的:

  • 100px高div,顶部和底部边框.

  • div中的一个未知数量的项目,它们在父div的顶部和底部边框内水平显示.

  • 重要的是,如果div中包含的更多项目可以水平放置,则div应继续下面的新行项目.第二行还应该在父div的顶部和底部边框之间水平显示项目.我不希望div只是增加高度并开始一个新行,因为这不允许顶部和底部边框出现在每行项目的上方和下方.

在此输入图像描述

html css

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

Azure .NET组件生命周期(CloudQueueClient,CloudQueue等)

如果我使用.NET SDK从MVC应用程序添加Windows Azure队列项或blob存储引用,那么每个组件应该保留多长时间?

对于队列,我们​​有CloudStorageAccount,CloudQueueClientCloudQueue.

对于blob存储,我们有CloudStorageAccount,CloudBlobClientCloudBlobContainer.

我假设最好每个Web请求创建一个组件,但现在不创建每个项目的成本.我再次假设使用单例生命周期保持客户端之间的Web请求不是一个好的计划,但没有任何进展.

azure azure-storage azure-storage-blobs azure-queues

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

IIS无法提供以.config结尾的页面

这显然是一个安全问题,可能不想改变它,但处理错误会很好.有任何想法吗?

我看到stackoverflow不能免疫:

/sf/ask/tagged/web/.config

他们似乎已将标记更改为web-config以修复问题但是当您搜索[web.config]时仍会收到非常讨厌的错误消息

iis url error-handling asp.net-mvc

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

mvc视图中的条件逻辑vs htmlhelper vs action

我有一个大视图,需要一些条件逻辑来决定在视图中间呈现几个html块中的哪一个.我的模型上有一个属性,它可以有几个不同的值来决定要输出的html.

我通常会将条件逻辑放在一个html帮助器中,但鉴于每个输出都是一大块html,我不确定在ac#文件中转义它们会很棒.我也可以将逻辑放在动作中并呈现不同的视图,但鉴于大多数视图都是相同的,这似乎也不是很好.所以我在我的视图(或部分?)中留下了多个if语句,这看起来也很丑陋(显然是不可测试的).

这样做的最佳方式是什么?

(我正在使用MVC3以防万一我可以使用新的和时髦的东西!)

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

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

asp.net mvc中editortemplate中复杂类型的ModelMetadata

我有一个viewmodel,它包含一个TestThing类型的复杂属性,声明为:

public class TestThing
{
        [Display(Name = "String3", Prompt = "String4")]
        public string Test1 { get; set; }

        [Display(Name = "String5", Prompt = "String6")]
        public string Test2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个这种类型的EditorTemplate,我希望能够访问每个子属性的元数据.例如,如果模板用于字符串,我可以通过使用来访问提示文本@ViewData.ModelMetadata.Watermark,但因为它是复杂类型,所以我不能使用此方法.

还有其他选择吗?

asp.net-mvc editortemplates modelmetadata razor asp.net-mvc-3

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

不同类型的集合

给出以下界面:

public interface IEventHandler<in TEvent> where TEvent : IEvent
{
    void Process(TEvent @event);
}
Run Code Online (Sandbox Code Playgroud)

我可以使用什么IEnumerable类型来存储IEventHandler<TEvent>TEvent不同的实现集合?

即给出以下3个实现:

public class BlahEvent1EventHandler : IEventHandler<Event1>
{
    ...
}

public class WhateverEvent1EventHandler : IEventHandler<Event1>
{
    ...
}

public class BlahEvent2EventHandler : IEventHandler<Event2>
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我可以比一组对象做得更好吗?

        var handlers = new List<object>
                           {
                               new BlahEvent1EventHandler(),
                               new WhateverEvent1EventHandler(),
                               new BlahEvent2EventHandler(),
                           };
Run Code Online (Sandbox Code Playgroud)

顺便说一句,已经看到一些其他的答案提倡使用基类型或继承的非通用接口,但看不出在这种情况下如何增加大量的价值,除非我遗漏了一些东西.是的,它会让我以一种稍微更安全的方式将它们全部添加到集合中,使用对象,但不会让我迭代它们并调用强类型的Process方法而不像我需要对象那样进行转换.

public interface IEventHandler
{        
}

public interface IEventHandler<in TEvent> : IEventHandler where TEvent : IEvent
{
    void Process(TEvent @event);
}
Run Code Online (Sandbox Code Playgroud)

我仍然需要施放,如果我有IEnumerable<IEventHandler>或 …

c# generics

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

在asp.net中缓存密钥长度

我正在调查MVC3源并遇到以下(在OutputCacheAttribute.cs中),在生成用于输出缓存的键时调用它:

        // The key is typically too long to be useful, so we use a cryptographic hash
        // as the actual key (better randomization and key distribution, so small vary
        // values will generate dramtically different keys).
        using (SHA256 sha = SHA256.Create()) {
            return Convert.ToBase64String(sha.ComputeHash(Encoding.UTF8.GetBytes(uniqueIdBuilder.ToString())));
        }
Run Code Online (Sandbox Code Playgroud)

评论说需要使用哈希,因为"密钥通常太长而无法使用".任何人都可以阐明这一点,并建议在asp.net中缓存键的最大长度?

asp.net caching outputcache

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

提高多串比较的效率(正则表达式?)

我有以下代码,我正在努力加快:

private bool IsValidProduct(string productName)
        {
            return (productName.IndexOf("something", StringComparison.InvariantCultureIgnoreCase) == -1 &&
                    productName.IndexOf("whatever", StringComparison.InvariantCultureIgnoreCase) == -1 &&
                    productName.IndexOf("blah", StringComparison.InvariantCultureIgnoreCase) == -1 &&
                    productName.IndexOf("keyword", StringComparison.InvariantCultureIgnoreCase) == -1 &&
                    productName.IndexOf("etc...", StringComparison.InvariantCultureIgnoreCase) == -1);
        }
Run Code Online (Sandbox Code Playgroud)

我目前正在检查大约十几个单词.

这样做的最快方法是什么?

c# regex string

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

关于列表属性的Automapper新手问题

作为AutoMapper的新粉丝,我将如何使用它来执行以下操作:

给定以下类,我想从Group创建FlattenedGroup,其中项字符串列表映射到Item的title属性.

public class Group
{
    public string Category { get; set; }
    public IEnumerable<Item> Items { get; set; }
}

public class Item
{
    public int ID { get; set; }
    public string Title { get; set; }
}


public class FlattenedGroup
{
    public string Category { get; set; }
    public IEnumerable<string> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

约瑟夫

automapper

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