小编Lev*_*kon的帖子

将数据注释应用于MVC中View模型的子属性?

在属性上放置简单的数据注释很棒,

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是让我说我​​有这样的事情:

public class SuperPower
{
   public class Name { get; set; }
}

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }

   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }
Run Code Online (Sandbox Code Playgroud)

如何在PrimarySuperPower.Name上应用Required属性,同时为SecondarySuperPower.Name保留可选属性?最好是1.与客户端验证相关的东西,2.没有任何特殊处理,比如检查Action/Custom验证器中的PrimarySuperPower.Name的值,如果它是空的,则添加ModelState错误.如果有类似的话会很棒:

   [Required(p => p.Name)]
   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }
Run Code Online (Sandbox Code Playgroud)

c# validation asp.net-mvc data-annotations

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

将html标记传递给ASP.NET用户控件

在以下示例中,

<uc1:MyUserControl>

   <p>this is html</p>

</uc1:MyUserControl>
Run Code Online (Sandbox Code Playgroud)

如何"<p>this is html</p>"在MyUserControl中以字符串形式访问,以便将其注入响应中?

我不是在谈论传递字符串参数<uc1:MyUserControl myparameter="<p>this is html</p>" />,而是如何在开始和结束标记之间或通过其他一些机制(如标记)访问真正的多行intellisensed HTML标记<MessageTemplate>.

在ASP.NET MVC 3中运行的解决方案的奖励积分!

编辑:

感谢StriplingWarrior和这个链接作为缺失的拼图,魔术制作:

所以,在任何观点:

<%@ Register src="../../Shared/Ribbon.ascx" tagname="Ribbon" tagprefix="uc1" %>
...
<uc1:Ribbon ID="Ribbon" runat="server">
    <Content>
    Hello world! I am <b>pure html</b> being passed into a UserControl!
    </Content>
</uc1:Ribbon>
Run Code Online (Sandbox Code Playgroud)

在Ribbon.ascx中:

<%@ Control Language="C#" CodeBehind="Ribbon.ascx.cs" Inherits="NunYourBeezwax.Views.Shared.Ribbon" %>
<table>
    <tr>
        <td>I am reusable stuff that wraps around dynamic content</td>
        <td><%= this.Content %></td>
        <td>And I am stuff too</td>
    </tr> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc user-controls

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

使用lambda为通用列表中的每个对象执行方法

我还是lambdas的新手并且发现很难找到它的特定功能,但是是否可以为通用列表中的每个对象执行一个方法?与ConvertAll的工作方式类似,但不是转换,而是实际调用方法.

public class Mouse()
{
    public void Squeak()
    {
    }
}

List<Mouse> mice = new List<Mouse>();

mice.Add(new Mouse());
mice.Add(new Mouse());
Run Code Online (Sandbox Code Playgroud)

你如何称呼每只鼠标的方法吱吱声?

mice.???(m => m.Squeak());
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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

Sql COALESCE整行?

我刚刚了解了COALESCE,我想知道是否可以在两个表之间COALESCE整行数据?如果没有,对于以下随机播放的最佳方法是什么?

例如,我有这两个表并假设所有列都匹配:

tbl_Employees

Id     Name     Email     Etc
-----------------------------------
1      Sue      ...       ...  
2      Rick     ...       ...  
Run Code Online (Sandbox Code Playgroud)

tbl_Customers

Id     Name     Email     Etc
-----------------------------------
1      Bob      ...       ...  
2      Dan      ...       ...  
3      Mary     ...       ... 
Run Code Online (Sandbox Code Playgroud)

和一个id为id的表:

tbl_PeopleInCompany

Id     CompanyId 
-----------------
1      1
2      1
3      1
Run Code Online (Sandbox Code Playgroud)

我想以一种方式查询数据,从第一个表中获取匹配id的行,但如果没有找到id,则从第二个表获取.

因此生成的查询看起来像:

Id     Name     Email     Etc
-----------------------------------
1      Sue      ...       ...  
2      Rick     ...       ...  
3      Mary     ...       ... 
Run Code Online (Sandbox Code Playgroud)

Sue和Rick从第一张桌子中取出,Mary从第二张桌子上取下.

sql

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

音频标签的Html5懒惰'onplay'事件处理程序?

使用新的Html5音频标签,onplay事件似乎只在第一次播放音频时触发.在此示例中,单击"播放"时,音频将以"正在播放"的警告弹出窗口开始播放.当音频完成并再次点击"播放"时,音频再次开始,但没有发出警报.我在这里错过了什么吗?我是否必须以某种方式重置音频?

<a href="#" onclick="$('#audio')[0].play();">Play</a>

<audio preload="none" id="audio" onplay="alert('playing');"><source type="audio/wav" src="..."></source></audio>
Run Code Online (Sandbox Code Playgroud)

我也尝试使用jQuery绑定到play事件,但我得到了相同的结果.

<a href="#" onclick="$('#audio')[0].play(); return false;">Play</a>

<audio preload="none" id="audio"><source type="audio/wav" src="..."></source></audio>

<script type="text/javascript">

    $(document).ready(function () {

        $('#audio')[0].bind('play', function () {

            alert("Playing");

        });

    });    

</script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery html5

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

const Enum 的最佳实践命名约定避免循环定义

这是一个重复的问题,但没有真正的解决方案。

那么我们开始吧。可以说我有:

public enum Color
{
    Red,
    Blue,
    Green
}

public class BlueUnicorn
{
    private const Color Color = Color.Blue;
}
Run Code Online (Sandbox Code Playgroud)
  1. “大多数枚举类型使用单数名称,但对于位字段的枚举类型使用复数名称。” 取自Microsoft 的枚举类型命名指南 检查!

  2. “考虑为属性指定与其类型相同的名称。” 从Microsoft 的类型成员名称 检查中检索!

  3. 根据 Resharper 的说法,我应该使用常量而不是只读在此输入图像描述查看!

但我收到编译器错误。但这很奇怪,没有智能感知。“BlueUnicorn.Color”常量值的计算涉及循环定义。

我感觉自己正处于一场会议的间隙。根据最佳实践命名约定,该字段应该命名为什么?

c# enums naming-conventions

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

从List <T>中的属性列出<T>

我无法找到如何做到这一点.我可能没有正确的术语.

我有一个对象列表:

class Cat()
{
   public string Name { get; set; }
}

List<Cat> cats = new List<Cat>();

cats.add(new Cat() { Name = "Felix" } );
cats.add(new Cat() { Name = "Fluffy" } );
Run Code Online (Sandbox Code Playgroud)

如何从Name属性中获取字符串列表,如下所示:

{ "Felix", "Fluffy" }
Run Code Online (Sandbox Code Playgroud)

c# generics

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

SqlConnection和Pool,保持一个开放的连接kung-foo或foo-bar?

我以为我很聪明.但鉴于最近的发现,我不再那么肯定了.在页面生命周期中,可以通过任意数量的数据库交互.一些背靠背,其他人分散开来.所以我发明了一个对象,它在HttpContext.Items字典中保持SQL连接的实例.然后每个db请求都使用此连接,当http请求结束时,我正确处理了连接.我们正在看几百毫秒的连接将被打开,并且有一些沉重的http缓存,可用连接的耗尽并不是一个问题.

关键是要防止因建立新连接而增加往返次数.但是当我偶然发现连接池的知识时,我认为它很有效地保留了SqlConnection的有用性.或者是吗?

情景A是否与情景B相同,表现明智吗?你会推荐哪个?方案B是否没有提供性能提升,甚至可能因为某些边缘情况而无法正常处理?请原谅示例中的假性,我不想用barf将它们弄得乱七八糟.

一个

using (var connection = new SqlConnection(connectionString))
{
   using (var command = new SqlCommand("...", connection))
   {
      ... doing database stuff ...
   }
}

... traversing the stack ...

using (var connection = new SqlConnection(connectionString))
{
   using (var command = new SqlCommand("...", connection))
   {
      ... doing database stuff ...
   }
}
Run Code Online (Sandbox Code Playgroud)

   var connectionKeeper = new ConnectionKeeper();

   // Add to the context items so it can be used anywhere
   Context.Items.Add("Connection", connectionKeeper);

   ... traversing the stack ...

   using (var …
Run Code Online (Sandbox Code Playgroud)

.net c# sql

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

SQL Server Distinct Union用于一列

我正忙着搞清楚我需要的SQL查询.

我有一个项目,为用户提供工作室级用户角色,每个项目都有项目级角色,覆盖/覆盖工作室级角色.所有角色都在工作室级别定义,但在项目级别仅定义了一些角色(主要是具有与其对应的工作室级别角色不同的值的角色)

g_studio_UsersInRole

userId  roleId  value
1       1       TRUE
1       2       TRUE
1       3       TRUE
2       1       FALSE
Run Code Online (Sandbox Code Playgroud)

g_project_UsersInRole

userId  roleId  value    projectId
1       2       FALSE    1
2       1       TRUE     1
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,它将项目角色覆盖在给定项目ID的工作室角色上.棘手的部分是避免重复的工作室级角色.我需要项目级角色(如果有的话)来支配.

我一直在玩Unions,但我无法弄清楚如何避免重复.

基本上我需要以下结果:

userId  roleId  value
1       1       TRUE
1       2       FALSE
1       3       TRUE
2       1       TRUE
Run Code Online (Sandbox Code Playgroud)

哪里

  • userId为1,roleId为2的值为False
  • userId为2,roleId为1的值为True

如项目层面所示

我以为我接近这个查询,但重复仍然存在:

;With roles As
(
SELECT     UserId, Value, RoleId
                       FROM          dbo.g_project_UsersInRole
                       WHERE      (ProjectId = 1)
                       UNION
                       SELECT     UserId, Value, RoleId
                       FROM         dbo.g_studio_UsersInRole)

SELECT     roles.RoleId, Value, UserId
FROM …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

如何在文件流中将varbinary(max)转换为T-SQL中的实际varbinary(max)

我有一个数据库,设置为使用blob FileStream在varbinary(max)字段上的音频文件.它的尺寸增加了80GB以上,我面临性能问题.

做了一些环顾四周后,我发现我的平均斑点大小约为180k.因为根据MSDN文件流应该用于超过1MB的对象,我正在重新评估我如何存储这些blob.MSDN还指出,"对于较小的对象,在数据库中存储varbinary(max)BLOB通常可以提供更好的流式传输性能." 所以我正在考虑从varbinary(max)到文件流,再到使用varbinary(max)字段.

所以我的问题是,有没有一种很好的方法使用sql脚本将每个文件流blob从文件流移动到实际的varbinary字段本身?在我决定要求之前,我一直在研究的另一种方法是让ac#app查询数据库中的blob并将每个blob写入文件系统.然后从数据库中手动删除文件流内容.然后让c#app从文件系统中读取blob并写回数据库.我认为必须有一个更简单的方法.

t-sql blob filestream

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