小编Mat*_*utt的帖子

Powershell scriptblock变量范围和模块的奇怪行为,任何建议?

注意:我在Windows Vista上使用PowerShell 2.0.

我正在尝试添加对为psake指定构建参数的支持,但我遇到了一些奇怪的PowerShell变量作用域行为,专门处理使用Export-ModuleMember导出的调用函数(这是psake公开它的主要方法的方式).以下是一个简单的PowerShell模块来说明(名为repoCase.psm1):

function Test {
    param(
        [Parameter(Position=0,Mandatory=0)]
        [scriptblock]$properties = {}
    )

    $defaults = {$message = "Hello, world!"}

    Write-Host "Before running defaults, message is: $message"

    . $defaults

    #At this point, $message is correctly set to "Hellow, world!"
    Write-Host "Aftering running defaults, message is: $message"

    . $properties

    #At this point, I would expect $message to be set to whatever is passed in,
    #which in this case is "Hello from poperties!", but it isn't.  
    Write-Host "Aftering running properties, message …
Run Code Online (Sandbox Code Playgroud)

powershell scope psake

16
推荐指数
2
解决办法
5282
查看次数

在 ASP.NET MVC 中将参数绑定到不同名称的方法?

我不断遇到一些场景,我想为操作方法提供一个稍微更直观或“格式良好”的参数名称,但是对于默认行为,这变得非常痛苦。例如,假设我有一个像 GetWidget(int id) 这样的动作参数。如果我希望它是 GetWidget(int widgetId),我必须添加一个新路由。当您使用像 jqGrid 这样的库时,它的查询字符串参数使用糟糕的名称时会变得更糟:GetWidgets(int? nodeid, int? n_level)。相反,我想要 GetWidgets(int? parentId, int? level) 或类似的东西。

那么,我忽略了一些简单的事情吗?告诉 MVC 我的“parentId”参数应该绑定到请求中“nodeid”的值似乎应该是一件非常简单的事情。我想过编写一个自定义操作过滤器来执行此操作,但似乎很明显,以至于我无法相信它不支持开箱即用。

asp.net-mvc

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

标签 统计

asp.net-mvc ×1

powershell ×1

psake ×1

scope ×1