小编J4N*_*J4N的帖子

Asp.net MVC 3:控制器中的模型是空的吗?

我有一个表单,我只需要在几个实体之间进行选择.

所以这就是我所做的:

创建了一个视图模型:

    public class EntityChooserModel
    {
        public IEnumerable<Entity> AvailableEntities { get; set; }
        public int SelectedId;
    }
Run Code Online (Sandbox Code Playgroud)

我在控制器中有两个动作,一个是[HTTPPost],一个没有.在两者中我都有一个"SessionUserData",它是会话数据,通过数据模型绑定绑定.

        [Authorize]
        public ActionResult EntityChooser(SessionUserData sessionData)
        {
            List<Entity> entities = _userStore.GetRoles(User.Identity.Name).Select(ur => ur.Entity).ToList();


            Entity entity = sessionData.IdCurrentEntity != null ? entities.Where(e => e.Id == sessionData.IdCurrentEntity).First() : entities.First();

            return View(new EntityChooserModel() { SelectedId = entity.Id, AvailableEntities = entities });
        }
Run Code Online (Sandbox Code Playgroud)

.

    [Authorize]
    [HttpPost]
    public ActionResult EntityChooser( EntityChooserModel model, SessionUserData sessionData, String returnUrl)
    {
        if (ModelState.IsValid)
        {
            Entity entity = _userStore.GetRoles(User.Identity.Name).Select(ur => ur.Entity).Where(e => …
Run Code Online (Sandbox Code Playgroud)

forms asp.net asp.net-mvc asp.net-mvc-3

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

在Asp MVC Telerik网格和实体框架中处理枚举

对于开发中的Web应用程序(ASP.Net MVC),我正在使用telerik网格.网格绑定到我的列表的IQueryable,因为它是一个大表,我希望telerik在列表中应用它的过滤器,然后执行此结果,而不是下载10'000行(使用连接的表),然后使用过滤器,仅使用行.

我正在使用(我真的需要它用于此页面,这是关键功能之一)网格的过滤器/顺序.

主列之一(确定数据类型)是枚举.

问题是,"Specified type member is not supported in linq to entities"一旦我尝试过滤/排序,我就会得到一个.

我要将它绑定在枚举(而不是映射的int)上,因为如果我使用id,filter/order by将在int上,我不能指望用户知道外表的id.

我只是无法再次实现自己所有网格参数(位于网址)(我假设,它要么我做所有事情,要么什么都没有)并正确过滤它,正确地订购它).

你有解决方法吗?

asp.net-mvc enums entity-framework telerik telerik-grid

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

WPF:MVVM:命令与CallMethodAction?

我正在学习一个新的(小)项目的MVVM模式,我有一个关于在我们的控制器上调用动作的方法的问题:

我看到很多教程他们告诉我们使用Command,暗示声明一个RelayCommand,初始化它并创建RelayCommand调用的动作.

在另一方面,我有一位同事告诉我,我可以使用CallMethodAction触发器:

<i:Interaction.Triggers> 
  <i:EventTrigger> 
    <ei:CallMethodAction MethodName="Init" TargetObject="{Binding}" /> 
  </i:EventTrigger> 
</i:Interaction.Triggers> 
Run Code Online (Sandbox Code Playgroud)

对我来说,他的方法的优点是我不必为命令制作一些inits方法(可能永远不会使用).

那我错过了什么?为什么每个人都使用命令?

wpf mvvm command-pattern mvvm-light

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

在指定位置打开"ColorDialog"对话框

可能重复:
设置OpenFileDialog/SaveFileDialog的起始位置

我要在用户点击的按钮上方显示ColorDialog.

目前我找不到如何指定这个位置:

  1. 没有StartPosition/ Location属性(当使用ShowDialog显示对话框时,如何控制对话框的位置?)
  2. 构造函数只接受一个windows参数并将其放在中间

我需要将它直接放在我的光标上方,指定X; Y.

有关如何实现这一点的任何想法?

谢谢!

.net c# dialog positioning winforms

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

c#知道我们用哪个IP与另一个IP通信?

使用自制的发现工具,我发现了一系列我感兴趣的服务.

我有他们的IP,服务名称,端口,主机......但是为了使用它们,我要向客户端库指定我们将使用的IP.

由于我有几个网卡,我需要检测哪个接口用于与我知道的目标IP通信,然后将其提供IPAddress给我的库.

但是我怎么能检测到我应该使用哪个接口IP?

我试图通过互联网进行一些搜索,但我认为我没有正确的关键字,因为我找不到任何相关的东西.

.net c# network-programming

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

获得数组N最后一个元素的最有效方法

对于一个项目,我将不得不经常采用包含大量数据的数组的N个最后一个元素.

我试着做

myArray.Skip(myArray.Length - toTake).Take(toTake)
Run Code Online (Sandbox Code Playgroud)

但我发现它很慢.

我将它与此进行了比较:

public static int[] TakeLast(this int[] inputArray, int count)
{
    int[] returnArray = new int[count];
    int startIndex = Math.Max(inputArray.Count() - count, 0);
    unsafe
    {
        fixed (int* itemArrayPtr = &(inputArray[startIndex]))
        {
            fixed (int* arrayPtr = &(returnArray[0]))
            {
                int* itemValuePtr = itemArrayPtr;
                int* valuePtr = arrayPtr;

                for (int i = 0; i < count; i++)
                {
                    *valuePtr++ = *itemValuePtr++;
                }
            }
        }
    }
    return returnArray;
}
Run Code Online (Sandbox Code Playgroud)

这很好用,这不是通用的(我希望这可以适用于任何基本类型(int,float,double,...).

有没有办法实现具有通用/ linq/...方法的可比性能?我不需要让它适用于IEnumerable,Array对我来说已经足够了.

编辑 我正在测试你给我的所有方法,现在它的Array.Copy似乎更快:

Generating array for 100000000 elements. …
Run Code Online (Sandbox Code Playgroud)

c# linq arrays performance

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

任何现有的 .Net 有序集?

我正在寻找 .Net 类,它基本上将:

  • 确保项目在其中是唯一的(如 HashSet)
  • 确保当我们枚举时,我们以与插入它们相同的顺序获得项目(如列表)

是否有一个现有的 .Net 类可以做到这一点?

我知道HashSet(不保证顺序),SortedSet(内容的顺序),但它们不符合我的需要。我没有任何其他需求(例如 aStack或 a Queue)。

我目前的替代方法是拥有List<>并使用Contains(...)之前添加和删除数据。

.net c# collections list set

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

VS2015在DebuggerStepTrough中抛出异常?

我刚刚升级了我的VS2013,相同的代码在调试模式下有不同的行为.

在VS2013中,我得到了调试中断我得到的异常.

其中一些可能发生并被处理的部分放在带有DebuggerStepTrough的Try-catch块中:

例:

[DebuggerStepThrough]
private void DoSomething(){
    try{
        throw new InvalidOperationException();//Obviously in my case, it's not a throw exception here but a method
    }catch(InvalidOperationException){
        //log something & handling this case
    }
}


private void SomeEntryPoint(){
    DoSomething();//In VS2015 I got the debug breaking here. In VS2013 I don't
}
Run Code Online (Sandbox Code Playgroud)

我在VS2013中没有这种行为.有没有办法避免它?

(我启用了"Just My Code")

debugging visual-studio visual-studio-2015

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

VS2015 + Resharper:不要使用C#6

我目前正在测试VS2015以了解它对我们的解决方案的反应.我有一些麻烦,因为VS2015带来C#6,我不能使用(因为我的同事没有这个,因为我们的构建机器也不会个月前拥有它).

我看到我应该能够为每个项目语言指定版本到C#5.我为我们所有的项目(其中270个)做了这个.现在,当我使用C#6功能进行编译时,我发现了一个错误,这很好.

但是,resharper一直试图让我使用Expression body进行属性,字符串插值,......

有没有办法让Resharper不提出这种改变?

resharper c#-6.0 visual-studio-2015

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

DevExpress WPF GridControl:如何在 XAML 中设置默认排序

我有以下 DevExpress 的 GridControl:

<dxg:GridControl SelectionMode="Row">
    <dxg:GridControl.Columns>
        <dxg:GridColumn FieldName="TimeStamp" Header="Local Computer Time"/>
        <dxg:GridColumn FieldName="Level" Header="Level" >
            <dxg:GridColumn.DisplayTemplate>
                <ControlTemplate>
                    <StackPanel Orientation="Horizontal">
                        <!-- Convert severity to image -->
                        <TextBlock Text="{Binding Name}" />
                    </StackPanel>
                </ControlTemplate>
            </dxg:GridColumn.DisplayTemplate>
        </dxg:GridColumn>
        <dxg:GridColumn FieldName="RenderedMessage" Header="Message"/>
    </dxg:GridControl.Columns>
    <dxg:GridControl.View>
        <dxg:TableView ShowFixedTotalSummary="True" Name="view" ShowIndicator="False"  ShowGroupPanel="False" ShowAutoFilterRow="False" AllowColumnFiltering="False" AllowEditing="False" AllowFilterEditor="False" AllowGrouping="False" AllowMasterDetail="False">
            <dxg:TableView.ColumnMenuCustomizations>
                <dxb:RemoveBarItemAndLinkAction ItemName="BestFitColumns"  />
            </dxg:TableView.ColumnMenuCustomizations>
        </dxg:TableView>
    </dxg:GridControl.View>
</dxg:GridControl>
Run Code Online (Sandbox Code Playgroud)

我想 :

  • GridControl按降序排列“时间戳”
  • 禁止用户更改任何排序
  • 在 XAML 中完成所有这些

我怎样才能做到这一点?我从现在开始就想弄清楚。

wpf xaml devexpress gridcontrol devexpress-wpf

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