我无法想到在控制器Action中重新创建数据库对象的最佳方法.
我想使用ModelBinder,因此在我的操作中,我可以通过参数访问对象,而不必重复代码以基于标识符参数从数据库中获取对象.所以我想让一个ModelBinder执行对dataaccess层的调用以获取原始对象(或者如果数据库中不存在则创建一个新对象),然后将任何属性绑定到数据库对象以更新它.但是我读过ModelBinder不应该进行数据库查询(本文的第一条评论).
如果ModelBinder不应该执行数据库查询(所以只使用DefaultModelBinder),那么具有其他db对象属性的数据库对象呢?永远不会分配这些.
在用户编辑对象后保存对象(在视图中可以编辑1或2个属性),ModelBinded对象将丢失数据,因此保存它将导致数据库中的数据被无效值覆盖,或者不是 - NULL约束失败.
那么,最好的方法是从数据库中获取控制器操作中的对象,该数据库与从视图中发回的表单数据绑定在一起?
请注意我使用NHibernate.
所以从这个字符串:
"名[ID]"
我需要这个:
"ID"
我使用str.split('[]'),但它不起作用.它只需要一个分隔符吗?
我正在开发一个带有数据库后端的10页网站.有500多个对象在使用,试图在ASP.Net中实现MVP模式.我是从一个单页的跟踪代码执行,我的手指已经在F-11在Visual Studio中约40分钟,似乎没有尽头,可能1000+方法需要一个网页!如果这只是50个对象,这将是一两件事,但是,通过所有这些对象就像数以百万计的蚂蚁在他们的巨大土丘房子疯狂回环,与对象隧道百出的代码执行蛇. 因此,一种新的反模式诞生了:AntFarm.
AntFarm也被称为"OO-Madnes","OO-Fever",OO-ADD,或简称为设计模式的瘾君子.
这不是我第一次看到这个,也不是我在其他公司的同事.似乎这种风格正在积极传播,或者无论如何是对众多OO/DP福音书的误解......
我想介绍的反模式反模式:GST或"完成各项工作"又名"获得嘘**做" AKA GRD(GetRDone).这种模式只关注它所说的内容,以简单的方式完成工作.我可能会在稍后的帖子中尝试更多地概述它,或者请在这种解药模式上分享您的想法.
不管怎么说,我在AntFarm反模式的一个很好的例子之中,因为我写的(作为奖金,有没有文件或意见).请分享你对这个反模式是如何变得如此prevelant,我们怎样才能避免它的想法,怎么能够撤消或在现场系统中的一个必须努力应对这种模式!
在大多数主流编程语言中,从函数返回多个值似乎是一件非常尴尬的事情.
典型的解决方案是使任一个结构或一个普通的旧数据类和返回,或者通过引用传递至少一些参数或代替指针返回它们的.
使用引用/指针非常尴尬,因为它依赖于副作用,意味着你还有另一个参数要传递.
类/结构解决方案也是恕我直言,因为你最终得到了一百万个小类/结构,它们只用于从函数返回值,产生不必要的混乱和冗长.
此外,很多时候总是需要一个返回值,其余的只在某些情况下由调用者使用.这些解决方案都不允许调用者忽略不需要的返回类型.
我知道的一种优雅处理多个返回值的语言是Python.对于那些不熟悉的人,它使用元组解包:
a, b = foo(c) # a and b are regular variables.
myTuple = foo(c) # myTuple is a tuple of (a, b)
Run Code Online (Sandbox Code Playgroud)
有没有人对这个问题有任何其他好的解决方案?除了Python之外,现有主流语言中的两种习语以及您在非主流语言中看到的语言级解决方案都是受欢迎的.
python language-agnostic language-design function syntactic-sugar
如果表没有行,有没有办法将表的可见性设置为false?
我希望在Reporting Services中没有行时隐藏它.
在这种情况下,将NoRows设置为=""是不够的,因为表格仍留有空间,并且某些表格的格式仍然可见.
我正在使用Microsoft Visual Studio/SQL Reporting Services 2005
Python有像C#这样的扩展方法吗?是否可以调用如下方法:
MyRandomMethod()
Run Code Online (Sandbox Code Playgroud)
在现有的类型上int?
myInt.MyRandomMethod()
Run Code Online (Sandbox Code Playgroud) 我们中的一些人在UI设计的柔和方面(特别是我自己)很难过."后端编码器"注定只是设计业务逻辑和数据层吗?我们可以做些什么来重新训练我们的大脑,以便更有效地设计令人愉悦和有用的表现层?
同事们推荐了几本书,包括网站设计,不要让我思考,为什么软件很糟糕,但我想知道其他人为消除这方面的不足做了什么?
我一直在阅读Ajax,并希望从stackoverflow社区看到我是否正确理解了一切.
因此,正常的客户端服务器交互是用户在URL中提取Web浏览器类型,并且HTTP请求被发送到服务器,从Web服务器请求页面和资源(css,pics).Web服务器通过HTTP响应客户端请求的页面/资源,浏览器呈现html/JavaScript以供用户查看页面.
1)那么可以安全地说XMLHttpRequest(XHR)对象正在执行与浏览器相同的过程,除了你没有从服务器请求html,你的请求文本是某种格式吗?
2)XHR对象是否像常规对象一样,可以由创建对象的程序(如普通对象)操纵,还可以通过HTTP与另一个程序(Web服务器)发送和接收数据?
3)因此在我的脑海中创建XHR时,它被加载到内存中,当我们执行request.open("GET",url,true)时,我们设置了一些对象参数.一旦我们执行了request.send(null),对象基本上会尝试通过HTTP"获取"URL,一旦我们从服务器获取数据,它就被放入responseText参数中.我理解正确吗?
4)同步和异步.当我想到同步时,我想到必须遵循的步骤.例如,我按下一个按钮,数据被发送到服务器,我必须等待数据返回,然后我才能做其他事情.使用异步连接,我会按下按钮,数据被发送到服务器,我会在数据被发回时做我想做的事情.这是一个很好的比喻吗?
我的应用程序有一个Silverlight菜单,以图像为背景.我在特定位置和大小使用一些空的HyperlinkButton来模拟图像上的真实按钮(想象为HTML图像映射):
<HyperlinkButton x:Name="Portfolio" Width="86" Height="40" Canvas.Top="50" NavigateUri="/portfolio"/>
<HyperlinkButton x:Name="Analysis" Width="79" Height="40" Canvas.Top="50" Canvas.Left="124" NavigateUri="/analysis" BorderThickness="0"/>
<HyperlinkButton x:Name="News" Width="77" Height="40" Canvas.Top="50" Canvas.Left="240" NavigateUri="/news"/>
<HyperlinkButton x:Name="Questions" Width="80" Height="40" Canvas.Top="50" Canvas.Left="357" NavigateUri="/questions"/>
<HyperlinkButton x:Name="Companies" Width="80" Height="40" Canvas.Top="50" Canvas.Left="477" NavigateUri="/companies"/>
Run Code Online (Sandbox Code Playgroud)
问题是,当我单击这些按钮时,它会在点击事件期间显示与超链接按钮区域对应的蓝色边框.有一种方法可以避免显示出来吗?
python ×3
function ×2
ajax ×1
asp.net ×1
asp.net-mvc ×1
c ×1
duffs-device ×1
hyperlink ×1
modelbinders ×1
nhibernate ×1
oop ×1
report ×1
silverlight ×1
string ×1