我正在构建一个WPF应用程序并尝试符合MVVM最佳实践.我正在使用MVVM Foundation框架,并注意到我读过的Messenger类应该用于处理WPF中的对话框.这听起来很棒,但我完全不了解如何使用Messenger来实现此目的.从字面上看,我想要做的就是打开一个模态关于对话框 - 我不需要来回传递任何消息.
Messenger类的目的是用于对话框需要来自其父级的消息,还是将消息返回给其父级的情况?关于对话框是否有点过分?如果只是将代码添加到事件处理程序以显示对话框,我会更好吗?
我希望能够在同一个模型中多次引用模型(has_many关系).例如,给定以下模型:
class MyModel
include Mongoid::Document
field :name, type: String
has_many :main_efforts, :class_name => 'Effort', as: :effortable, dependent: :delete, autosave: true
has_many :secondary_efforts, :class_name => 'Effort', as: :effortable, dependent: :delete, autosave: true
validates_presence_of :name
end
class Effort
include Mongoid::Document
field :name, type: String
belongs_to :effortable, polymorphic: true
validates_presence_of :name
end
Run Code Online (Sandbox Code Playgroud)
如您所见,Effort模型被引用两次.最初,我的Effort模型不是多态的,但似乎Mongoid无法确定努力属于哪个集合(main_efforts或secondary_efforts).因此,我把它变成了多态的.但是,在使其成为多态之后,我的main_efforts和secondary_efforts字段始终是一个空数组.
在同一模型中多次引用多态模型的正确方法是什么(假设需要多态模型)?
我在视图上有一个常规文本字段,我想使用iPhone键盘上的搜索按钮.对于我的生活,我无法弄清楚如何做到这一点.似乎没有任何暴露的事件,我可以连线,特别是与键盘上的搜索按钮有关.我已经google了一下,但我也没有找到任何与此主题相关的内容.
我正在尝试在Redis数据库中对类似于amazon.com类别(例如,书籍,电影,电子产品等)的数据进行建模.订单在HTML页面上呈现时对我很重要,因此向用户呈现一致的用户界面.因此,我将类别存储在排序集中:
ZADD categories 0 "Books"
ZADD categories 1 "Movies"
ZADD categories 2 "Electronics"
Run Code Online (Sandbox Code Playgroud)
然后,我为每个子类别创建了另一个排序集.
ZADD categories:books 0 "Fiction"
ZADD categories:books 1 "Non-Fiction"
ZADD categories:movies 0 "Horror"
[...]
Run Code Online (Sandbox Code Playgroud)
从这里开始,我想我可以将产品存储在哈希中.
HMSET product:1000 category 0 subcategory 0 title "Redis Cookbook"
HMSET product:1001 category 1 subcategory 0 title "Nightmare on Elm Street"
[...]
Run Code Online (Sandbox Code Playgroud)
我对Redis和Key/Value数据库商店都很陌生,所以我对自己的方法充满信心.这种模式对我来说是长期的吗?我应该注意更好/替代的方法吗?我担心的一个问题是保持名称"同步".例如,如果我将顶级类别从"书籍"更改为"文献"(可怕的例子,我知道),还应更新"参考"书籍的子类别的所有键.
当列表项具有附件时,SharePoint会自动呈现该特定行的回形针图像,这表示该项具有附件.有没有办法改变渲染的图像?
该站点位于共享托管环境中,因此我无法简单地替换文件系统上的映像.此外,还有其他列表属于应使用默认图像的同一站点.
有没有办法更改为单个列表中具有附件的项目呈现的图像?
编辑:以下是呈现的HTML:
<td class="ms-vb2">
<img align="absbottom" src="http://devsandbox/_layouts/images/attach.gif" alt="Attachment"/>
</td>
Run Code Online (Sandbox Code Playgroud) 我正在寻找一篇文章,深入探讨ASP.NET的工作原理以及它如何从XML标记中呈现控件.例如,在幕后,ASP.NET如何采用以下标记并让它产生我们看到的结果?
<asp:Label ID="MyLabel"><%= myObject.Text%></asp:Label>Run Code Online (Sandbox Code Playgroud)
有没有人知道任何会深入探讨ASP.NET内部工作的文章?
我正在尝试一种清理控制器的好方法,使它们更易于测试,而不必依赖于持续的数据库连接.我认为通过使用IObjectContext抽象出我的对象上下文,我有一个不错的开始.这适用于上下文,但我的下一个问题是我有一个通用的存储库,我在整个项目中使用了许多操作方法(参见下面的代码).
除了默认构造函数之外,我的控制器还包含一个重载,它接受IObjectContext(简单依赖注入).在我的单元测试中,我可以轻松地模拟IObjectContext.我的问题是在各种动作方法中处理我的通用存储库.我可以向控制器添加一些额外的构造函数重载,但我担心这会很快变得混乱.但是,如果没有这样做,我根本无法想到一种提高可测试性的简洁方法,因此我不必依赖数据库连接.
我有一个简单的解决方案吗?
/// <summary>
/// Initializes a new instance of the HomeController class
/// </summary>
public HomeController(IObjectContext context)
{
_context = context;
}
/// <summary>
/// GET: /home/index
/// </summary>
/// <returns>Renders the home page</returns>
public ActionResult Index()
{
List contacts;
HomeViewModel model;
using (IRepository<Contact> repository = new DataRepository<Contact>(_context))
{
contacts = new List(repository.GetAll());
}
model = new HomeViewModel(contacts);
return View(model);
}Run Code Online (Sandbox Code Playgroud)
如果我必须采用添加额外构造函数重载的路径以适应我的顾虑,我正在考虑添加一些私有属性(这将在需要之前对存储库进行实例化)到我的控制器为每个存储库操作方法利用.例如:
private IRepository<Contact> _contactRepository;
private IRepository<Contact> ContactRepository
{
get
{
return _contactRepository ?? (_contactRepository …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jQuery解析JSON,我遇到了问题.使用下面的代码,数据不断返回null:
<!DOCTYPE html>
<html>
<head>
<title>JSON Test</title>
</head>
<body>
<div id="msg"></div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$.ajax({
url: 'http://datawarehouse.hrsa.gov/ReleaseTest/HGDWDataWebService/HGDWDataService.aspx?service=HC&zip=20002&radius=10&filter=8357&format=JSON',
type: 'GET',
dataType: 'json',
success: function(data) {
$('#msg').html(data[0].title); // Always null in Firefox/Chrome. Works in IE8.
},
error: function(data) {
alert(data);
}
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JSON结果如下所示:
{"title":"HEALTHPOINT TYEE CAMPUS","link":"http://www.healthpointchc.org","id":"tag:datawarehouse.hrsa.gov,2010-04-29:/8357","org":"HEALTHPOINT TYEE CAMPUS","address":{"street-address":"4424 S. 188TH St.","locality":"Seatac","region":"Washington","postal-code":"98188-5028"},"tel":"206-444-7746","category":"Service Delivery Site","location":"47.4344818181818 -122.277672727273","update":"2010-04-28T00:00:00-05:00"}Run Code Online (Sandbox Code Playgroud)
如果我代替我的网址与Flickr的API URL(http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=? ),我得到一个有效的JSON结果,我能够利用.
我已经在JSONLint上成功验证了我的JSON ,所以我已经没想到我可能做错了什么.
有什么想法吗?
更新:我让客户端将内容类型切换到application/json.不幸的是,我仍然遇到了完全相同的问题.我还更新了我的HTML并包含了我一直在使用的实时URL.
更新2:我在IE8中尝试了一下,它运行正常.出于某种原因,它在Firefox 3.6.3或Chrome 4.1.249.1064(45376)中都不起作用.我确实注意到返回数据的错误(开发人员正在返回一组数据,即使对于总是会返回单个记录的查询),但它仍然让我感到困惑,为什么它在其他浏览器中不起作用.
值得注意的是,我正在使用本地文件系统上的HTML文件.我认为这可能是一个XSS问题,但这并不能解释Flickr的工作原理.
我似乎记得读过C#4.0中方法重载(和构造函数链接)和可选参数之间存在重要区别,但我无法找到任何确认任何差异的内容.
以下两种实现之间是否存在重要差异?
第一
public void Foo()
{
Foo(String.Empty);
}
public void Foo(string message)
{
Console.WriteLine(message);
}Run Code Online (Sandbox Code Playgroud)
第二
public void Foo(string message = "")
{
Console.WriteLine(message);
}Run Code Online (Sandbox Code Playgroud) asp.net ×1
asp.net-mvc ×1
c# ×1
c#-4.0 ×1
cocoa-touch ×1
dialog ×1
iphone ×1
javascript ×1
jquery ×1
json ×1
messenger ×1
methodology ×1
methods ×1
mocking ×1
mongoid ×1
mongoid3 ×1
mvvm ×1
nosql ×1
parsing ×1
redis ×1
rhino-mocks ×1
ruby ×1
sharepoint ×1
uikit ×1
unit-testing ×1
webforms ×1
wpf ×1