小编dav*_*ser的帖子

合并匿名类型

如何合并两个匿名类型,以便结果包含两个源对象的属性?

var source1 = new
{
    foo = "foo",
    bar = "bar"
}

var source2 = new
{
    baz = "baz"
}

var merged = Merge(source1, source2) // <-- here's where the magic should happen

// merged: 
// {
//      foo = "foo",
//      bar = "bar",
//      baz = "baz"
// }
Run Code Online (Sandbox Code Playgroud)

c# anonymous-types

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

ASP.NET MVC:错误页面中的奇怪字符

由于我将ASP.NET MVC 1应用程序的更新版本上传到服务器,因此Yellow Screen of Death已更改为以下内容:

I?%&/m?{J?J??t??$ @ iG#)* eVe] f @ 흼 { { ; N' ?\fdl J ɞ! ?〜|?" Ey ')= y6 h ͼhR L w | 2= Ez< 7 :5 < + ??:? ?T????W?v?<[??~2?g?2??????y?hY???????t? _N???M?l?????{?,??Xn???Q?}?????*g???????7?? ~?oy j'u>K { IW4 > U w | = -fYzR-

当通过远程桌面(Windows Server 2008 R2,IE8)直接在服务器上访问有错误的页面时,IE甚至会尝试下载响应,但会出现错误(消息框).

以前有人遇到过这个吗?不知道怎么解决这个问题?

我也发现了这个问题,看起来非常简单,但遗憾的是现在还没有得到解答:ASP.NET MVC应用程序显示奇怪的字符

asp.net asp.net-mvc yellow-screen-of-death

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

在ASP.NET MVC中本地化/转换路由

任何人都知道一个很好的解决方案来本地化ASP.NET MVC中的路由?我想要实现的是这两个网址指向相同的动作/资源:

此外,应该有可能根据当前文化生成路线(或默认情况下,如果没有可用的翻译).或者,如果我能够只指定一种文化,以便上面两个链接中只有一个可以工作,那也是可行的.

我尝试了Maarten Balliauw的一个非常好的方法,但不幸的是他的解决方案无效Html.RenderAction(...).

当然,我可以添加所有翻译的路线,如

routes.MapRoute(
    "Products_Categories",
    "Produkte/Kategorien",
    new { controller = "Products", action = "Categories" }
);
Run Code Online (Sandbox Code Playgroud)

但这将最终导致大量的路线,而且非常不灵活.任何更好的解决方案将不胜感激:-)越灵活越好.

localization internationalization asp.net-mvc-routing asp.net-mvc-3

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

CKEditor:插入图像时自定义HTML

我正在使用CKEditor 3.5在网站上提供WYSYWYG编辑.插入图像时,您可以提供图像的宽度和高度,从而产生如下HTML:

<img alt="" src="/Images/Sample.png" style="width: 62px; height: 30px; " />
Run Code Online (Sandbox Code Playgroud)

由于这会在浏览器和同一网站上的其他地方调整大小我使用Nathanael Jones的图像大小调整模块,我想得到以下输出:

<img alt="" src="Images/Sample.png?width=62&height=30" />
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来控制生成的HTML或者我真的要为CKEditor编写自己的对话框/插件?

编辑:

将以下行添加到config.js是最终为我工作的解决方案:

CKEDITOR.on('dialogDefinition', function (ev) {
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;
    var dialog = dialogDefinition.dialog;
    var editor = ev.editor;

    if (dialogName == 'image') {
        dialogDefinition.onOk = function (e) {
            var imageSrcUrl = e.sender.originalElement.$.src;
            var width = e.sender.originalElement.$.width;
            var height = e.sender.originalElement.$.height;
            var imgHtml = CKEDITOR.dom.element.createFromHtml('<img src=' + imageSrcUrl + '?width=' + width + '&height=' + …
Run Code Online (Sandbox Code Playgroud)

customization ckeditor

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

如何在使用AutoMapper/AutoMapViewResult时将下拉列表的数据导入viewmodel

在阅读了ASP.NET MVC 2 in Action并观看Jimmy Bogard的MvcConf演讲(强烈推荐!)之后,我开始实现他们的一些想法.

他们做的很酷的事情之一,不仅是使用AutoMapper将您的实体映射到某个视图模型,而且还使用AutoMapViewResult自动执行此操作:

public class EventsController : BaseController
{
    public ActionResult Show(Event id) // EntityModelBinder gets Event from repository
    {
        return AutoMapView<EventsShowModel>(id); // AutoMapView<T>(model) is a helper method on the BaseController, that calls AutoMapViewResult<T>(...)
    }
}

// not exactly what you'll find in the book, but it also works :-)
public class AutoMapViewResult<TDestination> : ViewResult
{
    public AutoMapViewResult(string viewName, string masterName, object model)
    {
        ViewName = viewName;
        MasterName = masterName;

        ViewData.Model = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc viewmodel automapper drop-down-menu

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

LINQ:... Where(x => x.Contains(以"foo"开头的字符串))

给定以下类的集合:

public class Post
{
    ...
    public IList<string> Tags { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以Post使用LINQ 获取包含以"foo"开头的标记的所有s?

var posts = new List<Post>
{
    new Post { Tags = new[] { "fooTag", "tag" }},
    new Post { Tags = new[] { "barTag", "anyTag" }},
    new Post { Tags = new[] { "someTag", "fooBarTag" }}
};

var postsWithFooTag = posts.Where(x => [some fancy LINQ query here]);
Run Code Online (Sandbox Code Playgroud)

postsWithFooTag现在应该包含第1项和第3项posts.

c# linq

10
推荐指数
2
解决办法
3万
查看次数

实体框架4.1代码优先:获取具有特定基类的所有实体

我有一个DbContext,设置了不同的DbSet<T>s,所有类型派生自同一个基类:

public class Foo : Entity { }
public class Bar : Entity { }

MyDbContext : DbContext
{
  public DbSet<Foo> Foos { get; set; }
  public DbSet<Bar> Bars { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

是否可以Entity在一个查询中获取具有基类的所有实体,例如:

DbContext.Set<Entity>();  // doesn't work
Run Code Online (Sandbox Code Playgroud)

我试图向DbSet<Entity>DbContext 引入一个显式,但这会为数据库中的所有实体生成一个大表.

附加问题:如果这种方式有效,那么查询接口呢?

编辑:

我按照Ladislav Mrnka 链接的说明进行操作,并按照以下方式完成了我的映射:

MyDbContext : DbContext
{
  public DbSet<Entity> Entities { get; set; }

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    // Foo
    modelBuilder.Entity<Foo>().Map(x =>
    {
      x.MapInheritedProperties();
      x.ToTable("Foo");
    })
    .HasMany(x => …
Run Code Online (Sandbox Code Playgroud)

mapping inheritance base-class ef-code-first entity-framework-4.1

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

ASP.NET(MVC)路由国际化

我正在寻找一个在ASP.NET MVC网站上国际化/本地化路由的解决方案.我偶然发现Maarten Balliauw撰写的翻译路线(ASP.NET MVC和 Webforms )的博客文章.他提出了一个非常好的解决方案,效果很好 - 直到Html.RenderAction("...")视图中有一个.

基本上他引入了一个TranslatedRoute继承System.Web.Routing.Route,而不是使用带有翻译的字典进行翻译.

知道调用时这种行为有何不同Html.RenderAction("...")?此外,似乎只发生错误,如果应该呈现的操作是在同一个控制器中.

这是确切的错误:

"未找到路径'/ MyTranslatedControllerName'的控制器或未实现IController."

更新:

这是我的路线配置(取自Maarten的示例项目,添加了Contact的路线,这是要渲染的部分路线):

    public static void RegisterRoutes(RouteCollection routes)
        {
            CultureInfo cultureEN = CultureInfo.GetCultureInfo("en-US");
            CultureInfo cultureDE = CultureInfo.GetCultureInfo("de-DE");
            CultureInfo cultureFR = CultureInfo.GetCultureInfo("fr-FR");

            DictionaryRouteValueTranslationProvider translationProvider = new DictionaryRouteValueTranslationProvider(
                new List<RouteValueTranslation> {
                    new RouteValueTranslation(cultureEN, "Home", "Home"),
                    new RouteValueTranslation(cultureEN, "About", "About"),
                    new RouteValueTranslation(cultureEN, "Contact", "Contact"),
                    new RouteValueTranslation(cultureDE, "Home", "Home"),
                    new RouteValueTranslation(cultureDE, "About", "About"),
                    new RouteValueTranslation(cultureDE, "Contact", "Kontakt"),
                    new RouteValueTranslation(cultureFR, "Home", "Demarrer"),
                    new …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc routing internationalization

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

在C#中转换异常

为什么我InvalidCastException试图这样做?

throw (ArgumentNullException)(new Exception("errormessage", null));
Run Code Online (Sandbox Code Playgroud)

这是以下功能的简化版本.

public static void Require<T>(bool assertion, string message, Exception innerException) where T: Exception
    {
        if (!assertion)
        {
            throw (T)(new Exception(message, innerException));
        }
    }
Run Code Online (Sandbox Code Playgroud)

完整的错误消息是:

System.InvalidCastException:无法将类型为"System.Exception"的对象强制转换为"System.ArgumentNullException".

c# casting exception

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

实体框架4.1代码优先:在一个实体上只有ICollection的多对多

给定这些类,使用EF 4.1 Code First,这将(按照惯例)留给页面和标记之间的多对多关系:

public interface ITaggable
{
  ICollection<Tag> { get; set; }
}

public class Page : ITaggable
{
  public virtual ICollection<Tag> { get; set; }
}

public class Tag
{
  public virtual ICollection<Page> { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于我有一堆其他类,实现ITaggable我必须将所有这些集合添加到Tag:

public class Tag
{
  public virtual ICollection<Page> { get; set; }
  public virtual ICollection<Post> { get; set; }
  public virtual ICollection<Event> { get; set; }
  ...
}
Run Code Online (Sandbox Code Playgroud)

如果我在TagEF 上省略这些属性会产生一对多的关系.有没有办法离开了ICollection<T>Tag并获得了许多一对多的关系呢? …

mapping many-to-many entity-framework ef-code-first entity-framework-4.1

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