小编lin*_*982的帖子

ActionResult扩展名不适用于Page()ActionResult方法

我有一个ActionResult扩展,​​可在返回页面时向TomData添加烤面包:

public static IActionResult WithMessage(this ActionResult result, InformMessage msg)
{
    return new InformMessageResult(result, msg);
}
Run Code Online (Sandbox Code Playgroud)

这是InformMessageResult:

public class InformMessageResult : ActionResult
    {
        public ActionResult InnerResult { get; set; }
        public InformMessage InformMessage { get; set; }

        public InformMessageResult (ActionResult innerResult, InformMessage informMsg)
        {
            InnerResult = innerResult;
            InformMessage = informMsg;
        }

        public override async Task ExecuteResultAsync(ActionContext context)
        {
            ITempDataDictionaryFactory factory = context.HttpContext.RequestServices.GetService(typeof(ITempDataDictionaryFactory)) as ITempDataDictionaryFactory;
            ITempDataDictionary tempData = factory.GetTempData(context.HttpContext);

            tempData.Put("InformMessage", InformMessage);

            await InnerResult.ExecuteResultAsync(context);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这与

return RedirectToPage(etc).WithMessage(etc)
Run Code Online (Sandbox Code Playgroud)

等等,但是失败了

return Page().WithMessage(etc)
Run Code Online (Sandbox Code Playgroud)

和调试器亮点 …

c# extension-methods asp.net-core razor-pages

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

内爆对象数组中给定名称的所有属性 - PHP

有没有办法使数组中包含的相似对象的值内爆?我有一个对象数组:

$this->inObjs
Run Code Online (Sandbox Code Playgroud)

我想要一个用逗号分隔的每个属性的字符串messageID

$this->inObjs[$i]->messageID
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法来做到这一点,或者我是否需要使用或类似的MacGyver解决方案?谢谢您的帮助。get_object_varsforeachs

php csv arrays implode

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

Javascript新手 - 似乎onBlur的一个元素"覆盖"另一个元素的onclick

我有两个要素:

<input type="text" name="pmTo" id="pmTo" onkeyup="offerSuggs('none');" onfocus="showSelect();" onblur="hideSelect();" />
Run Code Online (Sandbox Code Playgroud)

和一个动态创建的(这是自动建议程序的所有部分):

$suggString .= '<div name="'.$value.'" id="'.$value.'" class="suggMouseOver" onmouseover="highlightDivs(this);" onmouseout="blurDivs(this);" onclick="fillInput(this);">'.$value.'</div>';
Run Code Online (Sandbox Code Playgroud)

好的,然后有一些事件函数对应于输入元素的onblur,然后是div元素的onclick:

function hideSelect() {
            offerSuggs('checkFinal');
            document.getElementById('nameSugg').style.display="none";
            }


function fillInput(elemName) {
            document.getElementById('pmTo').value=elemName.id;
            }
Run Code Online (Sandbox Code Playgroud)

编辑:如何让onclick在他们点击的元素上正确触发而没有onblur事件隐藏div首先使onclick无意义?但是,当文本框失去焦点时,我仍然希望保留建议div消失的功能.谢谢.

javascript onclick javascript-events onblur

3
推荐指数
2
解决办法
3418
查看次数

捕获输入密钥跨浏览器,我的解决方案无法正常工作

我有我认为是一个跨浏览器的解决方案来捕获我正在制作的聊天脚本中的回车键,这里是:

    nn=(document.layers)?true:false;
ie=(document.all)?true:false;
function keyDown(e) {
    var evt=(e)?e:(window.event)?window.event:null;
    if(evt){
        var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
        if(key=="13") document.getElementById('chatEnter').submit();
        }
    }
document.onkeydown=keyDown;
if(nn) document.captureEvents(Event.KEYDOWN);
Run Code Online (Sandbox Code Playgroud)

我是从其他人那里得到的,所以也许它已经过时了?无论如何,你可以看到form id属性是chatEnter.我也尝试过使用document.forms [0] .submit,但也没用.它在FF中运行得很好但IE8 64位没有运气(这是迄今为止我测试过的唯一两个.)我在这里做错了什么?谢谢你的帮助.

javascript enter cross-browser event-handling

3
推荐指数
2
解决办法
8859
查看次数

Python - 如何强制枚举从1开始 - 或解决方法?

我有一个简单的for循环:

for index, (key, value) in enumerate(self.addArgs["khzObj"].nodes.items()):
Run Code Online (Sandbox Code Playgroud)

我希望在每第3个项目之后启动一个新的wx水平boxsizer来创建一个面板,每个面板有3个节点,并且继续与节点中的节点一样多.显而易见的解决方案是:

if index % 3 == 0: add a horizontal spacer
Run Code Online (Sandbox Code Playgroud)

但是枚举从0开始,所以0%3 == 0并且它会立即开始一个新的行.我试过做:

if index == 0: index = index + 1
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用,因为它创建一个新的var而不是更改原始 - 所以我得到1,1,2,3,4等,这将无法工作,因为我会得到4个节点之前我点击指数%3 == 0.

有关如何做到这一点的任何建议?这不是一个很大的枚举,通常只有大约10-15项.谢谢.

python for-loop enumeration modulus

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

所有PHP内置对象的参考?

我已经搜索了Stackoverflow和Google,但似乎找不到列出所有PHP内置对象(如DateTime)的引用(详尽或其他)。有没有人链接到这种性质的东西,谢谢,谢谢。

php reference object built-in

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

如果(这=那个) - 这里到底发生了什么?

很难要求搜索这个问题,答案有助于清理我的代码.基本上,在PHP中,如果我使用:

if (this = that)
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?是检查变量是否正确分配,还是检查"那个"的真实性,另外还将它分配给"这个"?

我问,因为如果答案是前者会更容易,因为它需要额外的一行来分配它,然后运行条件,然后再使用它的返回.我知道抓住一条线是微不足道的,但是在整个脚本上它可以加起来.谢谢你的帮助.

澄清:我想基本上写下以下内容:

$this = something;
if ($this)
  do things with $this
Run Code Online (Sandbox Code Playgroud)

把它写成

if ($this = $myFunctionCall)
  do things with $this;
Run Code Online (Sandbox Code Playgroud)

假设$ this未事先设定.

php conditional if-statement

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

Tkinter-如何水平居中画布文本?

我正在使用UI类中的一个函数,它是一个配置窗口,它显示程序的徽标,并在底部显示一个更新文本,告诉您它正在加载什么,等等。这是我到目前为止的内容:

    self.window = "config"
    self.windowWidth = 340
    self.windowHeight = 270
    infoText = "Configuring Kh..."
    self.root = tk.Tk()
    self.root.geometry("%dx%d+400+400" % (self.windowWidth, self.windowHeight))
    self.root.title("Kh Control v1.1 starting...")
    logo = tk.PhotoImage(file="KhLogo.gif")
    mainPanel = tk.Canvas(self.root, width=self.windowWidth, height=self.windowHeight)
    mainPanel.image = logo
    mainPanel.pack()
    mainPanel.create_image(0, 0, image=logo, anchor="nw")
    mainPanel.create_text(0,200, text=infoText, anchor="nw", fill="yellow")
    return
Run Code Online (Sandbox Code Playgroud)

我希望infoText中的文本水平居中并垂直向下偏移200px。垂直偏移效果很好,但我不知道如何水平放置文本居中。

我从尝试使用年龄较大的((width / 2)-(str length / 2))开始,但后来意识到每个字母都不是1px。而anchor =“ center”似乎仅将文本的一半放在屏幕的左侧。

我是Python的新手(仅几天),因此,如果我缺少明显的内容,这就是原因。

编辑:并且如果它不是很明显,则此文本将更改,因此我不能仅对偏移量做出绝对决定,它必须随文本更改

python tkinter tkinter-canvas

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

Python:value> value,当它明显不是时返回true

我在使用模块时一直出错,所以我去了引发异常的行,这里是:

elif value > max(self._intervals):
    raise Exception("\nERROR: Value Is Greater Than Maximum Element In Points List")
    return
Run Code Online (Sandbox Code Playgroud)

这一切都发生在一个大循环中,所以我想弄清楚哪个迭代变量导致它.事实证明,14次迭代中有9次导致错误.所以我把代码调整为:

elif value > max(self._intervals):
    print value
    print self._intervals
    print max(self._intervals)
    print value > max(self._intervals)
    raise Exception("\nERROR: Value Is Greater Than Maximum Element In Points List")
    return
Run Code Online (Sandbox Code Playgroud)

我得到这样的东西:

33
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
100
True
Run Code Online (Sandbox Code Playgroud)

因此,值为33,然后我打印列表,然后是代码所做的那个列表的最大值.显然,33不是> 100,所以最后一行我测试了,但它返回它是什么?这怎么可能?我正在失去对现实的把握,试图找出原因.这可能是我看不到的过于明显的事情.

python error-handling boolean max python-2.7

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

Python-OrderedDict中的字典理解不起作用

我有以下代码:

self.statusIcons = collections.OrderedDict
for index in guiConfig.STATUS_ICON_SETS:
     self.statusIcons[index] = {condition:\
           wx.Image(guiConfig.STATUS_ICON_STRING.format(index, condition),wx.BITMAP_TYPE_PNG).ConvertToBitmap() \
           for condition in guiConfig.STATUS_ICON_CONDITIONS}
Run Code Online (Sandbox Code Playgroud)

它建立了wx.Image对象的常规字典的有序字典,这些字典通过理解来设置。我最初嵌套了dict理解,但效果很好,但决定我需要订购顶级dict,所以最终以这种方式结束。问题是,现在我收到此错误:

TypeError: 'type' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

将相关代码归零。我无法弄清楚我做错了什么。即使它不是顶级的,ordersdict是否也不允许理解?也许它会尝试对有序词典中的所有词典进行排序,并且因为理解力处于较低水平而不能这样做吗?不确定,也许这是因为隧道视觉我无法发现的荒谬之处。

PS:如果您需要了解我在上面引用的全局变量中包含的内容:

STATUS_ICON_SETS = ("comp", "net", "serv", "audio", "sec", "ups", "zwave", "stats")
STATUS_ICON_CONDITIONS = ("on", "off")
STATUS_ICON_STRING = "images/{0}_{1}.png"
Run Code Online (Sandbox Code Playgroud)

python for-loop ordereddictionary typeerror dictionary-comprehension

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