小编And*_*age的帖子

IModelBinder上的BindProperty和SetProperty有什么区别

我在Mvc应用程序中创建自定义模型绑定器,我想将字符串解析为枚举值并将其分配给模型属性.我已经让它覆盖了该BindProperty方法,但我也注意到有一种SetProperty方法.

    protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor)
    {
        switch (propertyDescriptor.Name)
        {
            case "EnumProperty":
                BindEnumProperty(controllerContext, bindingContext);
                break;
        }

        base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
    }

    private static void BindEnumProperty(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var formValue = controllerContext.HttpContext.Request.Form["formValue"];

        if (String.IsNullOrEmpty(formValue))
        {
            throw new ArgumentException();
        }

        var model = (MyModel)bindingContext.Model;
        model.EnumProperty = (EnumType)Enum.Parse(typeof(EnumType), formValue);
    }
Run Code Online (Sandbox Code Playgroud)

我不确定两者之间的区别是什么,以及我是否以推荐的方式这样做.

asp.net-mvc modelbinders

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

如何在IE中禁用Modal对话框上的缓存?

我们使用IE方法将弹出窗口实现为模式对话框:

window.showModalDialog('...aspx')
Run Code Online (Sandbox Code Playgroud)

弹出窗口的目标本身就是一个ASP.Net网页.

假设以下步骤从未启动过弹出窗口:

  1. 启动弹出窗口.
  2. Page_Load事件处理程序在服务器端执行.
  3. 关闭弹出窗口.
  4. 立即再次启动弹出窗口.
  5. 这次Page_Load事件处理程序不执行.

很明显弹出内容正在被缓存,因为如果在步骤4我们清除临时Internet文件,则第二次执行Page_Load事件处理程序.

我们已经尝试将以下内容添加到网页的主管中(正如其他几个来源所推荐的那样),但它们似乎都没有效果.

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
Run Code Online (Sandbox Code Playgroud)

我们也看到过不鼓励使用这些的地方

有人可以帮忙吗?

html internet-explorer caching modal-dialog

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

有没有办法以声明方式将代码隐藏属性值传递给服务器控件?

任何人都可以解释为什么你不能在ASP.Net中的服务器控制声明中使用内联代码块?

以下是一个简单的例子......

....
<form id="form1" runat="server">
    <asp:Label ID="Label1" runat="server" Text="<%= SomeProperty %>"></asp:Label>
</form>
....
Run Code Online (Sandbox Code Playgroud)

代码块按字面意思呈现给页面...

<span id="Label1"><%= SomeProperty %></span>
Run Code Online (Sandbox Code Playgroud)

我最初的想法是它与在页面生命周期中处理这些事物的顺序有关.据<%=...%>我所知,这些块相当于Response.Write(...)代码隐藏.并且由于服务器控件实际上没有像标记中声明的那样呈现,我想在进行渲染之前可能无法处理嵌入的代码块.

我会非常感激任何人都能解释得更好一点.

但是,数据绑定代码块的<%#...%>行为方式明显不同,但任何人都可以告诉我为什么可以将它们嵌入到服务器控件中...

....
<asp:Repeater id=Repeater1 runat="server">
    ....
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<%# Eval(“SomeProperty”) %>'></asp:Label>
    </ItemTemplate>
    ....
</asp:Repeater>
....
Run Code Online (Sandbox Code Playgroud)

这很好用.

asp.net servercontrols inline-code

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

jQuery显示/隐藏 - CSS显示值正在影响我的布局

jQuery display在简单show()hide()函数的引擎下使用CSS 属性.以下HTML包含三个按钮,每个按钮都包含在一个<span>标记中,并且所有三个<span>标记都放在父<div>容器中.在页面加载时,<span>使用jQuery隐藏标记hide(),稍后在某些时候,使用该show()函数显示它们.HTML现在处于以下状态,<span>标签已收到样式值display: block;.

<div style="text-align:right; width:100%;">
    <span style="display:block">
        <input type="button" value="Button1" />
    </span>
    <span style="display:block">
        <input type="button" value="Button2" />
    </span>
    <span style="display:block">
        <input type="button" value="Button3" />
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

在Firefox(3.5)中,span元素显示为垂直堆叠在一起,而在IE中它们显示为内联.我会在两种浏览器中都期望后者,因为我认为span标签的默认布局是内联的.

如果我手动将样式更改display:blockdisplay: inline;,则在Firefox中看起来是正确的.本质上,当显示一个元素时,jQuery使用的值display并不总是有效.添加display: block; 足以显示元素,但不足以用我需要的内联布局显示它.

所以,对我的问题:

  1. 这是jQuery的已知问题吗?我正在使用jQuery 1.2.6.
  2. 以前有没有人遇到过这个问题,你是怎么解决这个问题的?

css jquery show-hide

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

AWS Cloud Formation !Sub 和 !Ref 函数在 AWS::Serverless::Function 策略中

我一直在我的 CloudFormation Yaml 模板中使用 !Sub 函数就好了。当将它用作对象属性值时,它对我有用

Object:
  Property1: !Sub some-value-with-a-${variable}-in-it
Run Code Online (Sandbox Code Playgroud)

变量的值按预期被替换。

但是,我不知道如何在字符串数组的元素中使用 !Sub 函数

Array:
  - !Sub some-value-with-a-${variable}-in-it
Run Code Online (Sandbox Code Playgroud)

该数组元素会被忽略。

我正在 SAM 模板创建 AWS::Serverless::Function 类型资源的上下文中尝试此操作。Policies 属性可以采用字符串数组:

lambda:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: api
    FunctionName: !Sub api-${MyStageName}
    Handler: Lambda:Api.Function::HandleAsync
    Runtime: dotnetcore1.0
    Policies: 
    - AWSLambdaBasicExecutionRole
    - !Sub arn:aws:iam::${AWS::AccountId}:policy/some-policy
    - arn:aws:iam::123456789:policy/another-policy
Run Code Online (Sandbox Code Playgroud)

!Sub 函数FunctionName在此示例中的属性中起作用。但是我最终只将 2 个策略附加到我生成的角色 -AWSLambdaBasicExecutionRolearn:aws:iam::123456789:policy/another-policy. 包括!Sub函数的那个被忽略。

我尝试过将函数放在新行中的选项:

Array:
  - 
    !Sub some value with a ${variable} in it
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?

更新

@Tom Melo 指出这不是数组问题,所以我调整了我的问题。

进一步的调查显示,这不是 Cloud Formation 的问题,而是非常特定于 …

yaml aws-cloudformation aws-lambda

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

你能配置VS2008 Code Analysis来使用英国英语词典吗?

VS2008代码分析将使用IdentifiersShouldBeSpelledCorrectly警告类型标记标识符中的拼写错误.

默认情况下,此过程使用美国字典,因为正在使用英语拼写标记正确拼写的单词.例如,"组织"和"定制"等词......

我知道你可以创建自己的自定义Xml字典文件,其中包含你不想被标记的任何单词,但是,任何人都可以告诉我你是否可以配置代码分析以使用不同的默认(或附加)字典在Windows中可用吗?

code-analysis visual-studio-2008 visual-studio

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

NOT处于调试模式时,单元测试无法运行

我刚刚将公共业务层项目从主分支分支到新分支,并将它们包含在新的解决方案中.一切都编译但是当我运行单元测试时,每次测试都会出现以下错误...

单元测试适配器引发异常:无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.

奇怪的是,当我调试它们时它们运行正常.只有在没有附加调试器的情况下运行它们时才会发生错误.

如果没有彻底修复,有人能告诉我如何"检索LoaderExceptions属性"吗?

unit-testing visual-studio-2008

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

WCF服务向后兼容性检查

我刚刚编写了一个新版本的WCF Web服务,我想确保我没有对服务和数据合同进行任何重大更改.

回想一下我作为VB6 Com Api开发人员的日子,我记得在编译时指定组件的先前发行版本是多么容易,并让编译器检查是否正在维护二进制兼容性.

我设想类似的(希望是)"合同兼容性"检查.它将使用元数据执行与VB6 dev env所做的类似的检查.这可以作为执行实用程序的单独构建步骤来完成.

我准备接受那里没有这样的实用工具.如果是这种情况,是否有人对如何实现这一目标的算法有任何想法?

  1. 从当前实时服务版本中检索元数据
  2. 从新服务版本检索元数据
  3. 检查服务合同和每个数据合同是否兼容.仅报告重大变化.

第3步似乎很复杂,但肯定是自动化的......

versioning wcf web-services metadata backwards-compatibility

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

如何使用2013 Power Tools中的TFS Powershell命令

我已经为2013安装了TFS Power Tools.但是如何访问powershell命令.

该文件建议使用

Add-PSSnapin Microsoft.TeamFoundation.PowerShell
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Add-PSSnapin:此计算机上未安装Windows PowerShell管理单元"Microsoft.TeamFoundation.PowerShell".

powershell tfs

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

NHibernate中总行数的分页

我试图使用HQL对一个简单的查询进行分页,并检索总行数作为同一查询的一部分.

我的查询很简单......

var members = UnitOfWork.CurrentSession.CreateQuery(@"
    select m
    from ListMember as m
    join fetch m.Individual as i") 
    .SetFirstResult(pageIndex*pageSize)
    .SetMaxResults(pageSize)
    .List<ListMember>();
Run Code Online (Sandbox Code Playgroud)

Individual在ListMember类中映射为多对一.这非常有效.分页按预期工作并生成以下Sql ...

SELECT   TOP ( 10 /* @p0 */ ) DirPeerG1_1_0_,
                 Director1_0_1_,
                 Director2_1_0_,
                 Forename2_0_1_,    
                 Surname0_1_
FROM     (SELECT listmember0_.DirPeerGrpMemberID    as DirPeerG1_1_0_,
             listmember1_.DirectorKeyID         as Director1_0_1_,
             listmember0_.DirectorKeyId         as Director2_1_0_,
             listmember1_.Forename1             as Forename2_0_1_,
             listmember1_.Surname               as Surname0_1_,
             ROW_NUMBER()
               OVER(ORDER BY CURRENT_TIMESTAMP) as __hibernate_sort_row
          FROM   tblMembers listmember0_
             inner join tblIndividuals listmember1_
               on listmember0_.DirectorKeyId = listmember1_.DirectorKeyID) as query
WHERE    query.__hibernate_sort_row > 10 /* @p1 */
ORDER BY …
Run Code Online (Sandbox Code Playgroud)

nhibernate pagination hql

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

Web App配置设置 - 最佳实践

我最近参与了修补Web应用程序项目,并注意到之前的开发人员使用数据库表进行配置设置而不是web.config(app.settings).

我应该使用哪个?web.config或数据库表?哪个最好?

c# asp.net configuration

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

计算属性不会在Powershell中抛出异常.有哪些可行的解决方案?

显然,Powershell中存在一个设计怪癖,它可以防止计算属性表达式中抛出的异常冒泡.所有发生的事情是计算属性的值最终为null.

function Get-KBValue() {
    # Some Logic here that can throw an exception
}

....

Get-ChildItem C:\Test | 
    Select-Object Name, CreationTime,  @{Name="Kbytes"; Expression={ Get-KBValue }}
Run Code Online (Sandbox Code Playgroud)

如果Get-KBValue函数抛出异常,则将Kbytes属性的值设置为$null,脚本将继续.

可能的解决方法:

  • try/catch{break}在表达式中使用(由@CB推荐)
  • 之后验证.虽然$null在某些情况下这可能是有效的,但这可能会很复杂.
  • 使用自定义对象而不是计算属性.但这不是那么好.

有什么想法吗?

powershell exception-handling

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

使用codedom在c#中编写代码

我想生成用于创建哈希表对象的代码,并为其分配密钥和值编程.它应该类似于

Hashtable ht = new Hashtable();

ht.Add( "key1", "value1" );
ht.Add( "key2", "value2" );
ht.Add( "key3", "value3" );
Run Code Online (Sandbox Code Playgroud)

例如

CodeMemberMethod testMethod = new CodeMemberMethod();

        testMethod.Name = "Test" + mi.Name + "_" + intTestCaseCnt;
        testMethod.Attributes = MemberAttributes.Public;.....
Run Code Online (Sandbox Code Playgroud)

这里它创建了一个方法programacticaly现在我想创建一个哈希表,所以我问如何?

c# codedom

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