小编Gro*_*kys的帖子

如何接受数组作为ASP.NET MVC控制器操作参数?

我有一个ASP.net MVC控制器调用Designs,具有以下签名的操作:

public ActionResult Multiple(int[] ids)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用url导航到此操作时:

http://localhost:54119/Designs/Multiple?ids=24041,24117
Run Code Online (Sandbox Code Playgroud)

ids参数始终为null.有没有办法让MVC将?ids=URL查询参数转换为动作的数组?我已经看到过使用动作过滤器的讨论,但据我所知,这只适用于在请求数据中而不是在URL本身中传递数组的POST.

asp.net-mvc-3

78
推荐指数
5
解决办法
6万
查看次数

WPF网格中子控件之间的间距

我有一组要在WPF窗口上显示的键/值对.我正在使用网格将它们放置出来:

<Grid Margin="4">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <Label Grid.Row="0" Grid.Column="0">Code</Label>
    <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Code}"/>

    <Label Grid.Row="1" Grid.Column="0">Name</Label>
    <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Name}"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

然而,当我显示它时,TextBoxes被压扁,它们的顶部和底部边框接触上方/下方的TextBox.在此布局中向行添加垂直空间的最佳方法是什么?

wpf grid layout

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

WPF ListView与项目的水平排列?

我想以类似于列表模式下的WinForms ListView的方式在ListView中布置项目.也就是说,在ListView中不仅在垂直方向而且在水平方向上布置项目.

我不介意这些物品的布局是这样的:

1 4 7
2 5 8
3 6 9

或者像这样:

1 2 3
4 5 6
7 8 9

只要它们在垂直和水平方向呈现,以便最大限度地利用可用空间.

我能找到的最接近的是这个问题:

如何使WPF ListView项目水平重复,如水平滚动条?

只能水平放置项目.

wpf layout listview

55
推荐指数
3
解决办法
7万
查看次数

MVVM:ViewModel中的CollectionView或xaml中的CollectionViewSource?

我正在使用MVVM模式开发WPF应用程序,我需要在ListView中显示项目列表(带过滤),所选项目的字段显示在主/明细视图中.我在以下两种方式之间徘徊:

  1. 在我的ViewModel中公开CollectionView,并绑定到它.
  2. 在我的ViewModel中公开一个普通的IList,并使用CollectionViewSource在XAML中创建CollectionView.

这是否有可接受的方式?有关最佳方式的任何想法?

collections wpf mvvm

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

ASP.net MVC 4 WebApi中的嵌套资源

新的ASP.net MVC 4 WebApi是否有更好的方法来处理嵌套资源,而不是为每个资源设置一个特殊的路由?(类似于此处:嵌套资源的ASP.Net MVC支持? - 这是2009年发布的).

例如,我想处理:

/customers/1/products/10/

我见过一些例子ApiController命名为比其他行动Get(),Post()等等,比如在这里我看到一个名为动作的一个例子GetOrder().我找不到任何关于此的文档.这是实现这一目标的方法吗?

rest asp.net-mvc asp.net-web-api

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

Polymer 1.0 Global Variables

在Polymer 0.5中,关于全局变量的建议如本问题/答案中所述:

聚合物全局变量

但是在Polymer 1.0中,这似乎不起作用.更改通知不会在基础模型上自动生成,<dom-module>而是在相反的情况下生成,这意味着将仅在其中一个上生成更改通知<app-globals>.

在Polymer 1.0中实现此模式的推荐方法是什么?

javascript html5 polymer polymer-1.0

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

捕获.NET中的异常类

我一直听到这个

catch (Exception ex)
Run Code Online (Sandbox Code Playgroud)

然而,不好的做法是,我经常在事件处理程序中使用它,例如,操作可能会进入网络,从而可能出现许多不同类型的故障.在这种情况下,我捕获所有异常并在消息框中向用户显示错误消息.

这被认为是不好的做法吗?除了异常之外我无能为力:我不希望它停止应用程序,用户需要知道发生了什么,而且我处于代码的顶层.我还应该做什么?

编辑:

人们说我应该查看调用堆栈并专门处理错误,因为例如StackOverflow异常无法有意义地处理.然而,停止这个过程是最糟糕的结果,我想不惜一切代价阻止这一过程.如果我无法处理StackOverflow,那么就是这样 - 结果将不会比没有捕获异常更糟糕,并且在99%的情况下,就我而言,通知用户是最不好的选择.

此外,尽管我尽最大努力解决可能引发的所有可能异常,但在大型代码库中,我可能会错过一些.对于他们中的大多数人来说,最好的防御仍然是告知用户.

c# exception

19
推荐指数
5
解决办法
7198
查看次数

RenderTargetBitmap和Viewport3D - 质量问题

我想将一个3D场景从Viewport3D导出到位图.

显而易见的方法是使用RenderTargetBitmap - 但是当我这样做时,导出的位图的质量明显低于屏幕上的图像.环顾四周,似乎RenderTargetBitmap没有利用硬件渲染.这意味着渲染在第0层完成.这意味着没有mip-mapping等,因此降低了导出图像的质量.

有谁知道如何以屏幕质量导出Viewport3D的位图?

澄清

虽然下面给出的示例没有显示这一点,但我最终需要将Viewport3D的位图导出到文件中.据我所知,唯一的方法是将图像转换为从BitmapSource派生的东西.下面的Cplotts显示使用RenderTargetBitmap提高导出质量可以改善图像,但由于渲染仍然在软件中完成,因此速度极慢.

有没有办法使用硬件渲染将渲染的3D场景导出到文件?当然应该可以吗?

你可以看到这个xaml的问题:

<Window x:Class="RenderTargetBitmapProblem.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="400" Width="500">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Viewport3D Name="viewport3D">
            <Viewport3D.Camera>
                <PerspectiveCamera Position="0,0,3"/>
            </Viewport3D.Camera>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <AmbientLight Color="White"/>
                </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                            <MeshGeometry3D Positions="-1,-10,0  1,-10,0  -1,20,0  1,20,0"
                                            TextureCoordinates="0,1 0,0 1,1 1,0"
                                            TriangleIndices="0,1,2 1,3,2"/>
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                            <DiffuseMaterial>
                                <DiffuseMaterial.Brush>
                                    <ImageBrush ImageSource="http://www.wyrmcorp.com/galleries/illusions/Hermann%20Grid.png"
                                                TileMode="Tile" Viewport="0,0,0.25,0.25"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.Material>
                    </GeometryModel3D>
                </ModelVisual3D.Content>
                <ModelVisual3D.Transform>
                    <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                            <AxisAngleRotation3D Axis="1,0,0" Angle="-82"/>
                        </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                </ModelVisual3D.Transform>
            </ModelVisual3D>
        </Viewport3D>
        <Image Name="rtbImage" Visibility="Collapsed"/> …
Run Code Online (Sandbox Code Playgroud)

.net c# 3d wpf rendertargetbitmap

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

HttpListener的替代品?

我正在开发一个到目前为止使用HttpListener提供一个小型独立http服务器的应用程序.但是,我最近发现HttpListener需要以管理员身份运行,但这并不总是可行的.

最好的选择是什么?我需要http GET和POST,这两者都不是简单地在文件系统上读/写文件,他们需要运行自定义.Net代码.

到目前为止,我的研究已经带来了卡西尼,但据我所知,我将不得不写一个自定义版本.还有别的事吗?在具有与HttpListener相同的接口的东西,但不需要管理员权限将是惊人的!

.net cassini httplistener

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

排列/测量问题 - WPF中的布局是否已损坏?

我试图制作我认为是WPF中的简单Panel,它具有以下属性:

  • 如果孩子的组合高度小于可用高度,则所有孩子都显示在他们想要的高度.

  • 如果孩子的组合高度大于可用高度,则所有孩子都会减少相同的百分比高度以适应.

我的面板看起来像这样:

public class MyStackPanel : Panel
{
    protected override Size MeasureOverride(Size availableSize)
    {
        Size requiredSize = new Size();

        foreach (UIElement e in InternalChildren)
        {
            e.Measure(availableSize);
            requiredSize.Height += e.DesiredSize.Height;
            requiredSize.Width = Math.Max(requiredSize.Width, e.DesiredSize.Width);
        }

        return new Size(
            Math.Min(availableSize.Width, requiredSize.Width),
            Math.Min(availableSize.Height, requiredSize.Height));
    }

    protected override Size ArrangeOverride(Size finalSize)
    {
        double requiredHeight = 0;

        foreach (UIElement e in InternalChildren)
        {
            requiredHeight += e.DesiredSize.Height;
        }

        double scale = 1;

        if (requiredHeight > finalSize.Height)
        {
            scale = finalSize.Height / requiredHeight;
        }

        double …
Run Code Online (Sandbox Code Playgroud)

c# wpf layout

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