小编dtl*_*lvd的帖子

更新IEnumerable中的项目属性但该属性未保留设置?

我有两个表:Transactions和TransactionAgents.TransactionAgents有一个名为TransactionID的Transactions的外键.很标准.

我也有这个代码:

BrokerManagerDataContext db = new BrokerManagerDataContext();

var transactions = from t in db.Transactions
                   where t.SellingPrice != 0 
                   select t;

var taAgents = from ta in db.TransactionAgents
               select ta;

foreach (var transaction in transactions)
{
    foreach(var agent in taAgents)
    {
        agent.AgentCommission = ((transaction.CommissionPercent / 100) * (agent.CommissionPercent / 100) * transaction.SellingPrice) - agent.BrokerageSplit;
    } 
}

dataGridView1.DataSource = taAgents;
Run Code Online (Sandbox Code Playgroud)

基本上,TransactionAgent有一个名为AgentCommission的属性/列,对于我的数据库中的所有TransactionAgent,它都是null.

我的目标是执行您在foreach(var agent in taAgents)修补每个代理的值时所看到的数学运算,使其不为空.

奇怪的是,当我运行此代码和断点时,agent.AgentCommission = (formula)它显示正在为AgentCommissision计算值并且对象正在更新,但在我的数据网格中显示(仅用于测试)之后,它不显示它计算的值.

所以,对我而言,似乎该属性并未永久设置在该对象上.更重要的是,如果我通过更新将这个新更新的对象保留回数据库,我怀疑计算的AgentCommission将在那里设置.

如果没有以相同的方式设置我的表,是否有人可以查看代码并查看为什么我不保留该属性的值?

c# linq

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

未找到局部视图或视图引擎不支持搜索的位置

我有以下控制器代码:

public MyController:Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [ChildActionOnly]
    public ActionResult MyPartialViewAction()
    {
        return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView",PartialViewModel);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的索引视图具有以下代码:

@HTML.Action("MyPartialViewAction")
Run Code Online (Sandbox Code Playgroud)

当我运行Web应用程序时,我得到了InnerExceptionMessage的HttpException:

InnerException {"未找到局部视图'〜/ Views/Shared/MyCustomFolder/_MyPartialView'或没有视图引擎支持搜索的位置.搜索了以下位置:\ r \n ~~/Views/Shared/MyCustomFolder/_MyPartialView" System.Exception {System.InvalidOperationException}

我到现在为止做了什么:

  • 试图移动_MyPartialView~/Views/Shared/MyCustomFolder~/Views/Shared/~/Views/MyControllerFolder,但仍存在错误

  • 尝试将我的索引视图代码更改为@HTML.RenderAction()但没有运气.

关于我出错的地方的任何输入?

谢谢

asp.net-mvc razor asp.net-mvc-3

42
推荐指数
4
解决办法
6万
查看次数

弹出窗口中的选项卡导航断开,WPF用户控件在默认AppDomain中的Winforms中托管

我有一个使用Popup的WPF用户控件.此控件是一个插件,可以加载到主AppDomain或单独的AppDomain中,并使用ElementHost以Winforms形式托管.当插件在主AppDomain中加载并打开弹出窗口时,弹出窗口的字段之间的选项卡会将焦点移动到弹出窗口父窗口的第一个控件.当它加载到新的AppDomain中时,选项卡行为按预期/期望的方式工作(它会循环显示弹出窗口中的控件).

我已经在SO和其他地方阅读了许多相似但不完全相同的问题,但没有一个建议有所帮助.

看来Tab键消息是在AddInHost中处理的(它来自我使用FrameworkElementAdapters来在域外情况下跨域边界编组WPF控件).我的最终目标是将其实现为托管外接程序框架插件,但我已经减少了WAY以简化repro.

如果它有助于拥有更完整的上下文,我有一个简化repro的git repo

我该怎么做才能使这种行为保持一致?

WpfUserControl.xaml

<UserControl x:Class="MyPlugin.WpfUserControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         mc:Ignorable="d" Background="White">
    <Grid Margin="5">
        <Grid.RowDefinitions>
            <RowDefinition Height="28" />
            <RowDefinition Height="28" />
            <RowDefinition Height="28" />
        </Grid.RowDefinitions>

        <TextBox Grid.Row="0" Margin="3" />

        <Button x:Name="DropDownButton" Grid.Row="1" Margin="3" HorizontalAlignment="Left" MinWidth="100" Content="Drop Down" Click="DropDownButton_OnClick" />
        <Popup Grid.Row="1" x:Name="Popup1" Placement="Right" StaysOpen="True" PlacementTarget="{Binding ElementName=DropDownButton}">
            <Border BorderBrush="Black" BorderThickness="1">
                <Grid Background="White">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>

                    <Label Content="Username:" Grid.Row="0" Grid.Column="0" Margin="3" />
                    <TextBox Grid.Row="0" Grid.Column="1" Margin="3" MinWidth="150" …
Run Code Online (Sandbox Code Playgroud)

c# wpf appdomain maf winforms

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

在App.cs上展示DisplayAlert(Xamarin)

我目前正在尝试不断跟踪用户是否连接到互联网.

我有代码来检查连接性,我希望能够在用户使用应用程序时连接到互联网时显示弹出窗口.

但是,我不能忍受DisplayAlertApp.cs(错误:DisplayAlert不存在的情况下).

我可以知道为什么会这样吗?

App.cs

public App()
{
    InitializeComponent();

    var seconds = TimeSpan.FromSeconds(1);
    Xamarin.Forms.Device.StartTimer(seconds,
        () =>
        {
            CheckConnection();
        });
}

private async void CheckConnection()
{
    if (!CrossConnectivity.Current.IsConnected)
        await DisplayAlert("No Internet Connection", "Please connect to Internet", "OK");
    else
        return;
}
Run Code Online (Sandbox Code Playgroud)

c# xamarin

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

有没有办法在C#中的对象初始化程序块中使用扩展方法

下面的简单演示捕获了我想要做的事情.在真正的程序中,我必须使用对象初始化块,因为它正在读取LINQ to SQL选择表达式中的列表,并且有一个值我要读取数据库并存储在对象上,但是对象没有我可以为该值设置的简单属性.相反,它有一个XML数据存储.

看起来我无法在对象初始化块中调用扩展方法,并且我无法使用扩展方法附加属性.

我对这种方法运气不好吗?唯一的替代方案似乎是说服基类的所有者为这种情况修改它.

我有一个现有的解决方案,我将BaseDataObject子类化,但是这个问题也没有出现在这个简单的例子中.对象将作为BaseDataObject进行持久化和恢复 - 转换和测试将变得复杂.

public class BaseDataObject
{

    // internal data store
    private Dictionary<string, object> attachedData = new Dictionary<string, object>();

    public void SetData(string key, object value)
    {
        attachedData[key] = value;
    }

    public object GetData(string key)
    {
        return attachedData[key];
    }

    public int SomeValue { get; set; }
    public int SomeOtherValue { get; set; }

}

public static class Extensions
{
    public static void SetBarValue(this BaseDataObject dataObject,
                                        int            barValue)
    {
        /// Cannot attach a property to BaseDataObject?
        dataObject.SetData("bar", …
Run Code Online (Sandbox Code Playgroud)

c# linq extension-methods initializer

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

仅将jquery代码应用于移动设备

我在网站上使用fullcalendar ,并且希望在较小的屏幕尺寸上稍微不同地设置事件样式。如果窗口低于特定大小,如何触发下面的代码?

eventAfterRender: function(event, element, view) {
    $(element).css('height','10px');
}
Run Code Online (Sandbox Code Playgroud)

jquery

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

无法在dotnet核心2.1中注册登录

我创建了一个新的dotnet核心项目:

dotnet new mvc -au none -o aspnet_app
Run Code Online (Sandbox Code Playgroud)

然后按照本指南添加日志记录到应用程序

所以我将COnfigureLogging添加到Program.BuildWebHost

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((hostContext, logging) => 
        {
            logging.AddConfiguration(hostContext.Configuration.GetSection("Logging"));
            logging.AddConsole();
        })
        .UseStartup<Startup>()
        .Build();
Run Code Online (Sandbox Code Playgroud)

并且还修改了Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddLogging();
    services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)

但是当我在HomeController中尝试使用它时:

private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger) {
    _logger = logger;
}
public IActionResult Index()
{
    _logger.LogInformation("Index action!");
    return View();
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
  An unhandled exception has occurred: Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'aspnet_app.Controllers.HomeController'.
Run Code Online (Sandbox Code Playgroud)

- …

c# asp.net logging .net-core

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

当我需要在RouteConfig.cs ASP.Net MVC中注册路由时

我正在学习MVC,所以试图写出许多可以控制的示例代码.我有一个问题,比如我需要写一个新的路由信息RouteConfig.cs?

我看到有一个默认路由是RouteConfig.cs文件中的寄存器

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

当我创建新控制器时,我看到没有在RouteConfig.cs文件中写入任何路由信息,视图在浏览器中呈现.

我创建一些控制器,就像一个,testcontroller and test view但不要写任何关于作为测试控制器的路线,但看到视图渲染正确.

所以给我一些例子,比如我需要写一个路由信息RouteConfig.cs.谢谢

asp.net-mvc-4

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

数据表draw()方法不适用于列过滤器

在花了几天时间尝试了很多我在互联网上找到的解决方案,我在这里问.

我有一个表单,在单击搜索按钮时显示包含数据的表.该表有8列,其中3列我想添加一个文本输入,使用该文本输入应用了具有列数据的过滤器.为了更好地理解我的需求,JsFiddle显示了一个工作列过滤器.

所以,我尝试了上面的链接和Datatable例子的解决方案没有成功,也找不到我做错了什么.

有我的代码:

<table id="EquipmentTable" class="table table-striped table-bordered bottom-buffer" width="100%">
    <thead>
        <tr>
            <th><input type="checkbox" name="select_all" value="1" id="checkAll" class="text-center" onclick="$.fn.backboneSearch.checkAllResult()"></th>
            <th>Equipement</th>
            <th>Famille d'équipement</th>
            <th>Gamme d'équipement</th>
            <th>Etat</th>
            <th>UI</th>
            <th>Site de stockage</th>
            <th>Salle technique</th>
            <th></th>
        </tr>
    </thead>
    <tfoot id="backboneSearchtfoot">
        <tr id="filterrow">
            <th></th>
            <th id="textFilter1" class="textFilter"></th>
            <th id="textFilter2" class="textFilter"></th>
            <th id="textFilter3" class="textFilter"></th>
            <th class="listFilter"></th>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </tfoot>
</table>
Run Code Online (Sandbox Code Playgroud)

// Setup - add a text input to each footer cell
$('#EquipmentTable tfoot th.textFilter').each(function (i) {
    $(this).html('<input type="text" …
Run Code Online (Sandbox Code Playgroud)

jquery datatables jquery-2.0 datatables-1.10

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

选择第一个独特的孩子

我需要"明确地"按父ID选择每个项目的第一个,如下所示:

// 'children' is a collection of Child ordered by parent
var last = 0;
var result = new List<Child>();
foreach (var c in children)
{
    if (c.Parent.Id != last)
    {
        result.Add(c);
        last = c.Parent.Id;
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做Linq查询?

c# linq

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

宽度的 WPF 静态资源

<Style x:Key="Small" TargetType="Button">
    <Setter Property="Width" Value="80"/>
</Style>    

<Style x:Key="DefaultButtonStyleSmall" TargetType="Button" BasedOn="{StaticResource ButtonBaseStyle}">
    <Setter Property="Width" Value="{StaticResource Small}" />
</Style>
Run Code Online (Sandbox Code Playgroud)

我收到错误

System.Window.Style 不是 setter 上 System.Windows.FrameworkElement.Width 属性的有效值

我究竟做错了什么?

wpf

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