真的很简单.在SQL中,如果我想在文本字段中搜索几个字符,我可以这样做:
SELECT blah FROM blah WHERE blah LIKE '%text%'
Run Code Online (Sandbox Code Playgroud)
App Engine的文档没有提到如何实现这一点,但肯定这是一个常见的问题吗?
我使用jQuery.ajax()解析从我的服务器返回的一些JSON数据时遇到困难
要执行我正在使用的AJAX:
$.ajax({
url: myUrl,
cache: false,
dataType: "json",
success: function(data){
...
},
error: function(e, xhr){
...
}
});
Run Code Online (Sandbox Code Playgroud)
如果我返回一个项目数组,那么它工作正常:
[ { title: "One", key: "1" }, { title: "Two", key: "2" } ]
Run Code Online (Sandbox Code Playgroud)
调用success函数并接收正确的对象.
但是,当我尝试返回单个对象时:
{ title: "One", key: "1" }
Run Code Online (Sandbox Code Playgroud)
调用错误函数,xhr包含'parsererror'.我已经尝试将JSON包装在服务器上的括号中,然后再将其发送到网络中,但它没有任何区别.然而,如果我将内容粘贴到Javascript中的字符串中然后使用eval()函数,它会完美地评估它.
我有什么想法我做错了吗?
安东尼
假设我有一个允许编辑用户详细信息的页面,所以我有一个像这样的ViewModel:
public class UserViewModel {
public string Username { get; set; }
public string Password { get; set; }
public int ManagerId { get; set; }
public string Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以在我的EditUser操作中,我可以通过模型绑定器传回它,然后我可以将其映射到域模型:
public ActionResult EditUser(UserViewModel user) {
...
Run Code Online (Sandbox Code Playgroud)
但是,显示表单的页面还需要详细信息,例如管理器和类别列表,以提供这些字段的下拉列表.它还可能会在侧边栏中显示其他用户的列表,以便您可以在正在编辑的不同用户之间切换.
那么我有另一个视图模型:
public class ViewUserViewModel {
public UserViewModel EditingUser { get; set; }
public IEnumerable<SelectListItem> Managers { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
public IEnumerable<SelectListItem> AllUsers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?它们都是View Models吗?如果是这样,我是否应该使用命名约定,以便区分类似模型的虚拟机和仅包含页面数据的虚拟机?
我错了吗?
我尝试按照最佳实践方法构建我最后一个相当大的MVC项目,但是我不太明白我在做什么.
它有一个数据,业务和Web(MVC)项目,但控制器包含大部分代码,数据层使用NHibernate并且有一些存储库负责太多事情,而业务层是任何不支持的东西的倾销场不属于其他两个项目.它可以工作,但我觉得它可以设置得更好 - 我不满意的主要事情是胖控制器和存储库.
我正在开始一个可能会变得合适的新项目,所以我花了更多的时间试图让我的设计在前面.阅读了一下之后,我正在尝试为每个聚合根创建一个存储库,然后在业务层中为表示层中的每个控制器提供一个服务.
我最初的希望是大部分代码将进入服务,而这与较小的存储库相结合将使我的控制器和数据层变薄.到目前为止,这种情况并没有发生.
我读过的所有内容都表明View Model不应该从Business层返回,而应该填充在表示层中,所以目前我的服务层主要是将模型从我的数据层传递到表示层然后做了准备视图模型所需的东西.所以我仍然有胖控制器,还有一个瘦的业务和数据层.
我的表示层也知道我的业务和数据层,但我认为这种分离的一部分是减少耦合?
我错了吗?我是否应该停止尝试盲目跟随我在互联网上阅读的内容,只需在业务层中准备视图模型,这样我就可以将大部分代码移到那里?我应该回到经典的ASP吗?:)
好的.
所以我认为这是我进入单元测试的时间,因为每个人都在敲打它已经足够长的时间了.我已经安装了NUnit并经历了一些"单元测试介绍"类型教程.
我目前正在组建一个小框架来帮助重建我们的一个Web应用程序,所以我为我的框架创建了一个VS2008项目,我想在我去的时候进行单元测试.
我如何进行单元测试WebControls?这些方法都是受保护的或私有的,因为它是一个框架,除了WebControl之外别无其他.
有什么指针吗?
伯恩斯
我有一个NSCollectionView
包含的集合CustomViews
.最初,它将子视图平铺为列和行,如网格.然后我将Columns
IB中的属性设置为1,所以现在它只是在行中一个接一个地显示它们.然而,即使我CustomView
的宽度为400px,它设置为自动调整大小,NSCollectionView
宽度为400px,并且设置为1列,子视图的宽度约为80px.
我知道我可以通过以下方式解决这个问题:
CGFloat width = collectionView.bounds.size.width;
NSSize size = NSMakeSize(width, 85);
[collectionView setMinItemSize:size];
[collectionView setMaxItemSize:size];
Run Code Online (Sandbox Code Playgroud)
但是将此代码放在awakeFromNib
我的方法中WindowController
只在程序启动时设置正确的宽度.当我调整窗口大小(和NSCollectionView
我指定的自动调整大小)时,CustomViews保持其初始设置的宽度.
如果需要的话,我很乐意自己调整子视图的大小,但我对Cocoa很新,似乎找不到任何解释如何做这种事情的文章.有人能指出我正确的方向吗?
安东尼
按照Rob的方式,我有Linq to SQL向导生成的类,然后是POCO类的副本.在我的存储库中,我返回这些POCO而不是Linq to SQL模型:
return from c in DataContext.Customer where c.ID == id select new MyPocoModels.Customer { ID = c.ID, Name = c.Name }
我知道这样做的好处是POCO模型可以更容易实例化,这将使我的代码更易于测试.
我现在正在从Linq迁移到SQL到实体框架,我大约只有EF书的一半.通过从我的存储库而不是EF实体返回POCO,我似乎会失去很多好处.
我还没有真正接受单元测试,所以我觉得我浪费了很多时间来创建这些额外的POCO并编写代码来填充它们,当我看起来所有的东西都是可测试的代码时,我也是由于无法跟踪我的物体,因此会失去EF的许多好处.
有没有人对所有这些ORM/Repository东西的相对newb有任何建议?
安东尼
我有需要扩大宽度和高度的HTML页面,所以需要能够上下滚动和左右,但我似乎无法得到的CSS梯度重复-X和向下留下了坚实的颜色.
剥离代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<style type="text/css" media="screen">
html {
height: 100%;
background-color: #366fcd; }
body {
margin: 0;
height: 100%;
width: 100%;
background-color: #366fcd;
background: -moz-linear-gradient(center top, #316494 0%,#366fcd 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #316494),color-stop(1, #366fcd));
background-repeat: repeat-x;
}
div#TheElement {
position: absolute;
width: 100px;
height: 100px;
background-color: #fff;
left: 2000px;
top: 2000px;
}
</style>
</head>
<body>
<div id="TheElement">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当您向下滚动时,这会将渐变运行为纯色(#366fcd),但是当您向右滚动时,渐变会停止,您也会看到纯色. 见例子. …
我在C#webapp中托管我的IronPython,如下所示:
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
var script = Engine.CreateScriptSourceFromString(pythonCode, SourceCodeKind.Statements);
script.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
我的python代码如下所示:
import clr
clr.AddReference('System.Core')
from System import DateTime
theDate = DateTime.Today()
Run Code Online (Sandbox Code Playgroud)
哪个会生成此错误:
IronPython.Runtime.Exceptions.ImportException: Cannot import name DateTime
Run Code Online (Sandbox Code Playgroud)
我花了一些时间在谷歌上,我发现的大部分代码似乎都不再适用了.
我的IronPython运行时版本是v2.0.50727 - 我应该升级吗?我曾经想过DateTime
会从早期的门进去吗?
这是我间歇性遇到的一个问题,但是一旦发生,它就会使我的所有应用程序服务崩溃,这让付费给我使用它们的客户大为不悦。
今早凌晨4点(没有人使用任何应用程序时),应用程序服务计划中的CPU从2%跃升至100%,并一直呆在那里直到我早上7点左右登录门户并停止所有应用程序服务:
从上图可以看到,跳转似乎与新实例的存在相吻合-图形上方有两个RD000 ...选项卡。这是否意味着Azure已启动了一个新实例/服务器并将其应用程序移至该实例/服务器?我没有将“横向扩展”设置为自动缩放,因此我的应用程序应仅存在于一个实例上。
如果真是这样,那么我的应用程序(一个计划中只有8个)是否必须再次“热身”并且以某种方式卡在100%的位置上?
如果我停止了每个应用程序,然后一次缓慢地打开它们,那么一切都会再次开始工作,但是如果我打开它们太快,它们最终将以100%的速度固定。
这在一天中也随机发生(尽管通常只有一个应用程序)。这是当天晚些时候其中一个应用的CPU图形的示例:
同样,如果我停止了该应用程序然后再次启动它,则在加载后,它会按预期运行。
该应用程序是一个ASP.NET MVC4应用程序,其中NHibernate作为其对Azure SQL DB的ORM,并且正在使用Redis作为其会话状态提供程序。它没有运行的webjobs。
我对如何确定这些问题的原因完全不知所措。
更新资料
根据下面David的建议,我下载了一个转储,当时它以100%固定,现在我正尝试使用WinDbg对其进行调试。
因此,我将Webapp的Platform设置为32bit时,正在加载WinDbg的X86版本。我不能用
!loadby sos clr
Run Code Online (Sandbox Code Playgroud)
在寻找D:\驱动器中的文件时-我认为是因为转储来自将应用程序映射到D:\的Azure VM,所以我使用的是:
!load C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll
Run Code Online (Sandbox Code Playgroud)
告诉我:
----------------------------------------------------------------------------
The user dump currently examined is a minidump. Consequently, only a subset
of sos.dll functionality will be available. If needed, attaching to the live
process or debugging a full dump will allow access to sos.dll's full feature set.
To create a full user dump use the command: .dump /ma <filename>
----------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行!runaway,它抱怨:
ERROR: !runaway: extension …
Run Code Online (Sandbox Code Playgroud)