小编Bea*_*ear的帖子

使用Razor更改MVC4中html.editorfor帮助程序的id属性

我已经查看了一些与此相关的各种答案,但所有这些都是针对mzc3而不是针对Razor.

我有一个页面,在部分视图中有多个表单,用于编辑不同的模型.但是,大多数模型都有一个"名称"字段.我希望能够指定具有特定ID的编辑器:

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name,  new {id = "PersonName"})
        @Html.ValidationMessageFor(model => model.Name)
    </div>
Run Code Online (Sandbox Code Playgroud)

我尝试了其他各种各样的东西,但没有找到一个满意的方法来处理这个问题.我似乎有两个选择:

1)使用普通的html助手手动创建表单,并在控制器中构建模型

2)重命名模型中的所有字段以适合格式

这些都不令我兴奋所以我希望有一个替代方案,但我担心id是将表单绑定到模型时使用的内容.

razor asp.net-mvc-4

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

用Python创建WebSocket客户端

我正在尝试学习套接字编程以及WebSocket协议.我知道存在python web socket客户端,但我希望只为自己的学习构建一个玩具版本.为此,我创建了一个非常简单的Tornado websocket服务器,我正在运行localhost:8888.它只是在客户端连接时打印一条消息.

这是整个服务器 - 它的工作原理(我在浏览器中用一个小的javascript脚本测试过它)

import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web


class WSHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        print('new connection')
        self.write_message("Hello World")

    def on_message(self, message):
        print('message received %s' % message)

    def on_close(self):
      print('connection closed')

application = tornado.web.Application([
    (r'/ws', WSHandler),
])


if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

所以一旦我启动服务器,我尝试运行以下脚本

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((socket.gethostbyname('localhost'), 8888))

msg = '''GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: …
Run Code Online (Sandbox Code Playgroud)

sockets tornado websocket handshake python-3.3

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

通过使用泛型变量作为参数来调用重载函数

我想扩展BinaryWriter类,以便能够将列表写入流.我想用多种类型的列表来做这件事.我将此通用函数设置为扩展

public static void Write<T>(this BinaryWriter source, IEnumerable<T>items)
{
     foreach (T item in items)
          source.Write(item)//This doesn't work
} 
Run Code Online (Sandbox Code Playgroud)

这是可能吗?我知道write可以处理所有内置类型.我知道有能力将T约束到某些类型,但我无法为int和double执行此操作.

我只需要它为int,double和bytes工作.

c# generics extension-methods type-constraints

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

Python 字节文字有额外的不是十六进制的字符,但会改变字符串的值

我习惯于将字节表示为十六进制值的 python 字节文字语法,例如b'\x7a'hex value 0x7a。但是,我遇到了一个问题,我不知道它是如何工作的。我第一次使用 ssl 库并使用ssl.RAND_bytes(...)它创建随机值它正在返回带有更改值的字符的字符串(例如在执行时int.from_bytes(...))我收到的示例字符串:

b'\x12\x1f)\x8b\xe0\xd7LD'
b'\x808\x8a(\x02\xb3S\xc9\xabW_\n\xf3\xbb\x80o'
b'\xde\xef\x81%FMB=Ps'
b'9\x81\x90\xdc\xfa\x98\xbd\x1f^;'
Run Code Online (Sandbox Code Playgroud)

我不明白的是那些非十六进制值字符,例如9前面的\x81MB=Ps。我想了解这些额外值代表什么以及在调试代码时如何解释它们。我知道python对这些没有问题,是我不知所措。

注意:我在 windows 7 64bit 上使用 python3.3

python byte python-3.3

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

金字塔 - 我必须在更改寄存器之前运行python setup.py install

我刚开始使用Pycharm学习金字塔.我一直在阅读教程,但遗憾的是那里似乎没有很多.我的问题是每当我对源进行更改时,我必须先运行python setup.py install才能测试我的更改.这一步似乎没必要,我很困惑为什么会这样.我在Windows上开发Pycharm.我希望能够更改代码,重新启动服务器,并立即看到我的更改反映在网站上(跳过distutils步骤).

python configuration pycharm pyramid

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