小编Kez*_*zer的帖子

使用ASP.NET MVC的NHibernate会话+事务3

我现在正在编写一个新的应用程序,虽然公司标准是使用NHibernate(因为这是所有项目的标准),而我现在正在使用ASP.NET MVC 3,因为它已经成熟.我已经在控制器中实现了我的事务(据说这是你应该这样做的方式),所以它在我的根控制器中看起来像这样:

[TransactionPerRequest]
public class FbsController : Controller
{

}
Run Code Online (Sandbox Code Playgroud)

然后我的所有控制器都继承了这个FbsController.这样做的原因是因为90%的所有操作都将转移到数据库,因此创建事务并将其处理剩余10%的操作(很少会执行)的开销不值得装饰每一个动作[TransactionPerRequest].

总是困扰我的事情是关于NHibernate会话.在存储库类中,这与我所拥有的一致,尽管这在其他项目中是不同的:

    public void Add(User user)
    {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            session.Save(user);
        }
    }

    public void Remove(User user)
    {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            session.Delete(user);
        }
    }

    public User GetById(int userId)
    {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            return session.QueryOver<User>()
                .Where(c => c.UserID == userId)
                .SingleOrDefault();
        }
    }
Run Code Online (Sandbox Code Playgroud)

那么对于我的存储库中的大多数函数,我必须打开一个会话.有没有办法避免这种行为,所以我不必在每个存储库方法中打开一个会话?这似乎有点反直觉,因为我通常必须为每一个人做这件事.我想知道其他人的解决方案是什么解决了交易和会话问题,我看到各种各样的代码乱七八糟.

实际上我希望我的存储库方法如下所示:

    public void Add(User user)
    {
        session.Save(user);
    }

    public void Remove(User user)
    { …
Run Code Online (Sandbox Code Playgroud)

nhibernate asp.net-mvc-3

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

jQuery单击Stop Propagation

我有一个简单的设置,一个表格,其单元格中有复选框.我有两个事件,一个响应单击复选框,另一个响应单击"tr"元素.当我单击一个复选框时,我不希望触发表行事件.我试着event.stopPropagation()return false;没有任何的运气.这是一个片段:

$("tr").click(function() {
    alert("tr clicked");
});

$("input[type=checkbox]").change(function(event) {
    event.stopPropagation();
    alert("checkbox clicked");
});
Run Code Online (Sandbox Code Playgroud)

有类似的东西:

<tr>
    <td><input type="checkbox" id="something" name="something" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

如果更改事件触发,则click事件也将触发.tr如果在td元素中更改了复选框,如何停止点击事件的任何线索tr

jquery

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

在A <td>元素中设置所有锚标签的样式

我已经有一个css部分:

.leftMemberCol
{
width:125px;
vertical-align:top; 
padding: 13px;
border-width:0px;
border-collapse:separate;
border-spacing: 10px 10px;
text-align:left;
background-color:#f2f3ea;
}
Run Code Online (Sandbox Code Playgroud)

对于td部分(左侧栏).我想让这个单元格内的所有链接都是绿色.

是否有任何语法:

.leftMemberCol.a
{
color:#E3E3CA;  
} 
Run Code Online (Sandbox Code Playgroud)

或任何其他建议,而不必去每个页面并包装另一个类名称周围的所有链接.

css

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

自动完成jQuery 1.8-UI JSON格式

我正在使用jQuery 1.8-UI中的新自动完成功能.我提供了以下格式的数据

["val1", "val2", "val3"]
Run Code Online (Sandbox Code Playgroud)

这来自存储过程但输出为字符串.但是,由于某种原因,如果我使用javascript变量提供相同的数据,这根本不起作用

var data = ["val1", "val2", "val3"];
Run Code Online (Sandbox Code Playgroud)

然后这很好.

<script type="text/javascript">
  $(function()
    $("#txtClient").autocomplete({
      source: "/intranet/common/scripts/IntranetLists.aspx?ListType=C"
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

我有一个页面,使用查询字符串提供我想要的任何数据.这是暂时的,但是当我以前使用过bassism的自动完成功能时它会起作用.

有任何想法吗?


编辑

源只是在单独的行上输出一个条目.现在输出使用JSON格式.我不明白的是输入如何将数据作为查询提供给数据源.正如我说的,我用一个脚本应该被调用每次我进入一个新的关键时期.

这是我得到的代码(考虑到这与第三方自动完成插件一起工作正常)

<%
  Dim MyCmd As New dbExact("proc_Intranet_Lists")
  MyCmd.cmd.Parameters("@List").Value = Request.QueryString("ListType")
  If Request.QueryString("Top") <> Nothing Then
    MyCmd.cmd.Parameters("@Top").Value = Request.QueryString("Top")
  End If
  MyCmd.cmd.Parameters("@Code").Value = Request.QueryString("term")
  MyCmd.cmd.Connection.Open()

  Dim results As New StringBuilder()
  results.Append("[")
  Dim dr As SqlDataReader = MyCmd.cmd.ExecuteReader
  If dr.HasRows Then
    While dr.Read
      results.AppendLine("'" + dr(0).ToString() + "',")
    End While
  Else
    results.Append("None …
Run Code Online (Sandbox Code Playgroud)

.net jquery-ui autocomplete jquery-autocomplete

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

用2个循环反向迭代?

基本上我想反向迭代2 std :: vectors.图层具有形状向量.

通常我可以这样做:

for(int i = 0; i < layers.size(); ++i)
{
   for(int j = 0; j < layers[i].shapes.size(); ++j)
   {
      layers[i].shapes[j].dosomething();
   }
}
Run Code Online (Sandbox Code Playgroud)

但是现在我需要反向迭代遍历向量,因此需要使用反向迭代器,但这将如何工作?由于迭代器类似于每个迭代器,我如何访问正在迭代的当前层的当前形状?谢谢

c++ vector

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

使用 AttributeDescription 字段的下拉列表枚举 ASP.NET MVC

基于这篇文章:How do you create a dropdownlist from an enum in ASP.NET MVC?

我想做完全相同的事情,除了使用枚举中的 AttributeDescription 字段,例如:

[DescriptionAttribute("1 Star")] OneStar = 1,
[DescriptionAttribute("2 Stars")] TwoStar = 2,
[DescriptionAttribute("3 Stars")] ThreeStar = 3,
[DescriptionAttribute("4 Stars")] FourStar = 4
Run Code Online (Sandbox Code Playgroud)

前面的链接中给出的解决方案将在下拉列表的文本字段中显示“OneStar”,而我希望看到“1 Star”。我看过一些与此相关的帖子,但他们的解决方案非常冗长。

asp.net-mvc-3

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

ASP.NET MVC中的AutoMapper更新操作

这对某些人来说可能相当直接,但是我有点困惑,找不到一个像样的例子.假设我正在使用视图模型,我的POST操作会接受该视图模型.通常我会按照以下几行做一些事情:

    [HttpPost]
    public ActionResult Update(UserViewModel uvm)
    {
        User user = Mapper.Map<UserViewModel, User>(uvm);
        _repository.Update(user);

        return RedirectToAction("Index");
    }
Run Code Online (Sandbox Code Playgroud)

虽然这不是全貌.映射可以正常工作,但是如果我只是更新我映射的内容,那么它就会删除数据库中的有价值的数据,因为在这种情况下我不会更新密码或其他细节.

我的存储库看起来像这样:

    public void Update(User user)
    {
        User u = Session.QueryOver<User>().Where(x => x.UserName == user.UserName).SingleOrDefault();

        if (u == null)
            throw new Exception("User not found");

        u.Forename = user.Forename;
        u.Surname = user.Surname;
        u.EmailAddress = user.EmailAddress;
    }
Run Code Online (Sandbox Code Playgroud)

[我正在使用NHibernate,因此一旦会话关闭(请求完成后),它会自动将对象保存回数据库.]

所以我的问题是,在我的存储库中,我应该加载"用户"实体,然后更新我想要的值,然后将其保存回来,还是有另一种方法来执行此操作?我问的原因是因为它看起来有点......"手动",如果你明白我的意思?也许这是正确的,但我只想看到那些在这方面有更多经验的人的意见.

干杯

nhibernate automapper asp.net-mvc-3

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

Apple帮助创作

我正在按照本指南公开一些Apple的帮助.我工作的应用程序已经内置了多年的帮助,但它突然停止工作,并且没有对应用程序plist或任何帮助文件进行任何更改.我们假设Apple改变了一些东西,所以我确保它符合Apple要求的规格.当我说"不工作"时,我的意思是我们的链接使用NSHelpManager将打开帮助查看器,但带回一个找不到的页面.

要查看清单的事情:

  1. 页面顶部有一个正确名称的锚点
  2. 文件夹结构是之前链接的文章的副本
  3. 我们正在重新索引帮助页面
  4. 我们确实清除了所有缓存

这是我们用来打开帮助页面的代码:

NSString *locBookName = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleHelpBookName"];
[[NSHelpManager sharedHelpManager] openHelpAnchor:@"mypage" inBook:locBookName];
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我们有一个<a name="mypage"></a>顶部有一个页面,所以它应该正确链接.我们的脚本如下:

hvfix(清除所有缓存):

rm -rf ~/Library/Caches/com.apple.help*
rm -rf ~/Library/Preferences/com.apple.help*
rm -rf ~/.Trash/*
killall helpd
defaults write com.apple.helpindexer IndexAnchors YES
Run Code Online (Sandbox Code Playgroud)

updatehelpindex.sh(重新生成索引)

#!/bin/sh
hiutil -C -f MyApp.help/Contents/Resources/English.lproj/MyApp.helpindex
MyApp.help/Contents/Resources/English.lproj/
Run Code Online (Sandbox Code Playgroud)

我们进行构建,将文件夹放入Applications文件夹中,以便注册应用程序+帮助.我们甚至尝试重启或注销/登录,但我们什么也得不到.我知道这是一个非常繁琐的过程,但我们尝试的任何东西似乎都没有用.我们希望能够做的就是使用NSHelpManager打开帮助锚点.毫无疑问,这可以在10.6+中运行,因为许多其他应用程序都这样做(一些报告表明它不适用于10.7/8,但它们必须是不真实的).

想法?

编辑(文件夹结构):

这是在MyProj.help文件夹中,该文件夹位于整个Cocoa项目的子目录中,名为"help".

+ Contents
     Info.plist
     + Resources
         + shrd
              (a bunch of image files)
         + English.lproj
               MyProj.helpindex
               index.html
               + css
               + pgs
               + gfx
Run Code Online (Sandbox Code Playgroud)

在文件夹中正是如预期的那样,'css'中有一堆CSS文件,'pgs'有HTML页面,'gfx'有图像文件.

xcode objective-c

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

jQuery中的多条件选择器

我正在尝试选择具有多个条件的元素,例如我现在正在执行以下操作:

$('#myspan').find('input:visible').each(myfunc);
Run Code Online (Sandbox Code Playgroud)

虽然我知道你可以做的事情,$('#myspan input:visible')但它对我不起作用.我需要检查跨度#myspan内可见检查的输入.有任何想法吗?

javascript jquery

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

LINQ比调用存储过程慢吗?

我希望我们将对我们的系统进行大修以使用ASP.NET MVC,但是所提供的所有示例都倾向于使用LINQ to SQL.LINQ开发人员告诉我们它实际上比调用存储过程慢.

此外,如何使用MVC调用存储过程进行输出?我不完全确定LINQ能满足我们的需求,因为我们的存储过程非常庞大且复杂.有什么想法吗?

linq stored-procedures

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

IE7将元素默认为100%宽度

对于我正在处理的Web应用程序,我遇到了一个非常令人沮丧的问题(我最初并没有写它).它使用框架进行足够的布局.我遇到的问题是所有具有背景颜色和通过CSS设置边框的元素默认为100%宽度.我刚刚测试了div元素,段落元素等.

我完全删除了样式表,然后对其进行了测试,我遇到了同样的问题,因此不是导致问题的样式表.

我写了一个快速测试,以确保它不是冲突的代码,并使用与我们相同的doctype和xmlns - 我得到了同样的问题.这是示例代码.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
    #test {
        border:1px solid #ccc;
        background-color:#ddd;
    }
</style>
</head>
<body>
    <div id="test">
        Test information!
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

html css internet-explorer-7

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