小编Bor*_* B.的帖子

ASP.Net MVC3 - 将剃刀标记作为参数传递

我有一个帮助器EditableArea,它为用户提供了一个运行时可编辑的div(通过JS).EditableArea帮助程序检查Area数据库中是否存在具有指定ID 的可编辑区域(与MVC无关),如果是,则呈现该区域的HTML,否则它将显示为辅助程序指定的默认标记:

@Html.EditableArea(someId, "<p>Click to edit contents</p>")
Run Code Online (Sandbox Code Playgroud)

这一切都运行正常,但我想更改它,以便默认标记不是作为字符串指定,而是在剃刀语法中,如下所示:

@using (Html.EditableArea(someId))
{
    <p>Click to edit contents</p>
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西,比如@section在MVC3中的工作方式.

我怎样才能做到这一点?

我可以在IDisposable其中Dispose关闭TagBuilder等,但我无法避免渲染内部Razor标记,即使帮助器找到一个带ID的区域(我可以清除Dispose()中的渲染内容但是{仍然会运行,我想跳过).

如果我不使用Dispose()是否有其他方法将剃刀块传递给帮助器,帮助器实际上可能会或可能不会实现?

c# asp.net .net-4.0 razor asp.net-mvc-3

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

基于通用约束的方法重载?

我可以以某种方式重载方法,只有通用类型约束不同

这不编译:

    void Foo<T>(T bar) where T : class
    {

    }

    void Foo<T>(T bar) where T : struct
    {

    }
Run Code Online (Sandbox Code Playgroud)

由于这些是"开放"方法,因此实际方法应该在具有类型的代码的其他地方引用时关闭/构造/完全定义T,然后将清楚调用哪个重载.

显而易见的解决方案不是让它们超载,但我想知道为什么这在C#中不起作用?

附加问题:如果这只是一个C#编译器约束,IL是否允许这样的重载?

c# generics

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

在Android手机上产生热量(当然,来自代码)

我需要加热一部Android手机(不要问......)

到目前为止,我尝试运行一个带有while循环的最高优先级线程,ROL-s是一个整数,但是产生的热量太少,即使手机几乎停止运行.我尝试在循环中进行复杂的数学运算,但结果是一样的.我尝试了更多的线程,但正如预期的那样,它的行为与只有一个线程完全相同.

为了让它产生更多的热量,我可以做些什么来对其征税呢?

编辑:一些额外的信息 - 它基本上是一个应该作为后台服务运行的应用程序(android服务以startService()启动),它使用通知来指示它正在运行(或不运行).理想情况下,它应该没有UI,除了用于启动/停止它的控制活动.我已经完成了服务,通知和控制活动.该服务使用它自己的线程进行手机加热,这样它就不会干扰活动的UI(在同一个Android应用程序中),现在我只需要编写线程的"肉",即实际会导致的一些代码电话加热.

android

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

命名约定:为什么Array#delete最后没有感叹号?

我正在学习Ruby,并且我已经看到方法名称末尾的感叹号按照约定意味着该方法self以某种方式修改.为什么不接着Array#delete用感叹号结尾,像slice!呢,因为delete从删除的元素self?我错过了什么基本的东西?

ruby naming-conventions

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

C#.Net4:正确处理(动态)COM对象

我需要从我的.Net4应用程序自动化办公文档(Word和Excel).

由于我无法真正强迫我的用户使用特定的Office版本,因此我不使用互操作程序集或tlbimp,因此我的项目不包含任何其他引用,如果未安装Office,整个应用程序也将失败(功能刚赢了)不可用).

相反,我问系统哪个COM服务器可以处理"Word.Application"或"Excel.Application":

dynamic app = Activator.CreateInstance(Type.GetTypeFromProgID("Word.Application"));
app.Foo();
Run Code Online (Sandbox Code Playgroud)

我担心如何在完成后正确处理"app"对象,因为现在我有两个内部管理系统需要担心(COM引用计数和.Net引用跟踪).理想情况下,我应该能够将动态app对象包装到一次性包装器类中,并确保在处理包装器时底层COM对象未被引用.

编辑:此外,我想知道当我完成它时如何正确地使COM对象"活着",因为Word是在一个单独的过程中.我应该能够实例化Word应用程序,自动化它,然后释放我的所有引用,但Word应用程序应该保持打开状态.

.net c# com com-interop

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

实体框架4.1代码优先 - 仅使用数据注释定义多对多

是否可以仅使用数据注释在Entity Framework 4.1(Code First方法)中定义多对多关系,而无需使用模型构建器?

例如,类似于:

Product = { Id, Name, ... }
Category = { Id, Name, ... }
ProductCategory = { ProductId, CategoryId }
Run Code Online (Sandbox Code Playgroud)

你得到了照片.

我不希望ProductCategory在上下文中有两个多对一的中间实体,因为我没有任何额外的数据,只有两个FK.此外,我应该能够为中间表定义表名,以便与现有数据库一起使用.

entity-framework code-first data-annotations ef-code-first entity-framework-4.1

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

MVC3:如何更改通用[必需]验证消息文本?

当您使用Required属性修饰模型对象的属性并且未指定ErrorMessage 或者ResourceType/Name以"{0}字段是必需的"的插值形式获得验证消息时,其中param 0是该DisplayName属性的属性的值.

我想将该默认字符串更改为其他内容,但我想保留它的通用性,即我不想指定ErrorMessageResourceType/Name模型对象的每个属性.存储的默认字符串在哪里?如何更改它?

c# data-annotations asp.net-mvc-3

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

ASP.NET MVC 3.0 - 为什么在视图中强类型模型,如果没有发生静态编译?

我正在积极开发桌面应用程序,本地和网络服务,一些经典的ASP.NET等,所以我习惯于静态编译和静态代码分析.现在我(最终)学习ASP.NET MVC 3.0我发现许多ASP.NET MVC专家和经验丰富的开发人员都建议在ASP.NET MVC 3.0中使用强类型视图(如果适用).

我猜测"强类型"意味着写@model=...在视图代码的顶部.但在这样做时,我只能使IntelliSense工作,没有进行静态代码检查.我可以@modelcshtml的语句中编写我想要的任何内容,它将编译并运行.因此,Model.Anything也编译.事实上,如果我输入@model,我可以动态地使用我想要的具有"兼容"属性和方法的任何模型.

我已经习惯了"强类型",意思是"不会编译",像LINQ到什么,如果你没有得到正确的属性就不会编译.@model除了IntelliSense和运行时错误之外还有其他任何目的,为什么它被称为强类型,如果它实际上不是?

强大的打字,计算机文学中的意义

strong-typing type-safety strongly-typed-view asp.net-mvc-3

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

跟踪 Linq 表达式评估

我想知道是否有可能为 IQueryable 编写一个“直通”扩展方法,它会在评估可查询时编写调试字符串,换句话说,调试打印应该是评估的副作用。

就像是:

var qr = SomeSource.Where(...).OrderBy(...).Trace("SomeSource evaluated at {0}", DateTime.Now)
var qr2 = qr.Where(...);
Run Code Online (Sandbox Code Playgroud)

当我构造一个 linq 查询并将其作为数据源传递给某个对象时,我想知道该对象何时以及多久评估一次我的查询。我想它可以通过其他方式实现,例如包装 IEnumerable.GetEnumerator,但我想对任何 linq 查询通用。

c# linq

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

托管在.Net4 app中的.Net2程序集在x86中的表现比在AnyCpu模式下表现更好?

我有一个.Net4 WinForms应用程序引用第三方.Net2程序集,其中包含图形密集的可视控件.当我意外地将它从AnyCpu切换到x86编译模式时,我注意到应用程序的视觉性能有了很大的提高.我的开发工具是x64 Windows 7.当控件渲染其图形元素时,改进至少为两倍.

这是一个众所周知的事实还是我做错了什么?

.net performance x86 winforms anycpu

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