小编Ste*_*mid的帖子

将其他属性传递给EditorTemplate

如何将一些其他属性传递给EditorTemplate

我想像这样使用它(一种伪代码):

@Html.EditorFor(m => m.ReturnFlight, new { additionalViewData = new { FlightType = FlightType.Return } })
@Html.EditorFor(m => m.OutboundFlight, new { additionalViewData = new { FlightType = FlightType.Outbound } })
Run Code Online (Sandbox Code Playgroud)

FlightTemplate:

<h1>FLight @Model.FlightNumber</h1>
@if(FlightType == FlightType.Outbound)
{
    // Display stuff for outbound flights
}
else if(FlightType == FlightType.Return)
{
    // Display stuff for return flights
}
@Form.TextboxFor(m => m.Destination)
Run Code Online (Sandbox Code Playgroud)

c# asp.net razor

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

ASP.NET 5(vNext)在Azure上导致500 - 内部服务器错误

我们正在使用新的ASP.NET 5(vNext),EF7和AngularJS开发一个项目,并计划在Azure上部署WebApp.

我在Azure上创建了一个新的Web应用程序,并通过Visual Studio 2015发布了我们的项目.发布后,当我尝试测试我们的应用程序时,我会得到500 - 内部服务器错误.

我已经设定<customErrors mode="Off" />web.configwwwroot没有成功.我已经通过FTP登录,"DetailedErrors"也没有包含任何有用的信息.

eventlog.xml包含以下异常:

<Events><Event><System><Provider Name="ASP.NET 4.0.30319.0"/>    <EventID>1309</EventID><Level>2</Level><Task>0</Task>    <Keywords>Keywords</Keywords><TimeCreated SystemTime="2015-07-28T10:54:43Z"/>    <EventRecordID>280293125</EventRecordID><Channel>Application</Channel>    <Computer>RD000D3A202052</Computer><Security/></System><EventData>    <Data>3005</Data><Data>An unhandled exception has occurred.</Data>    <Data>7/28/2015 10:54:43 AM</Data><Data>7/28/2015 10:54:43 AM</Data>    <Data>9df086471c304ebfa4ddddf9ca2a2b92</Data><Data>1</Data><Data>1</Data><Data>0</Data><Data>/LM/W3SVC/2082809257/ROOT-1-130825544829782705</Data><Data></Data><Data>/</Data><Data>D:\home\site\wwwroot\</Data><Data>RD000D3A202052</Data><Data></Data><Data>2108</Data><Data>w3wp.exe</Data><Data>IIS APPPOOL\appname</Data><Data>InvalidOperationException</Data><Data>Couldn't determine an appropriate version of runtime to run. See http://go.microsoft.com/fwlink/?LinkId=517742 for more information.
at AspNet.Loader.RuntimeLocator.LocateRuntime(MapPathHelper mapPathHelper, Boolean&amp; isCoreClr, String&amp; relativeAppBasePath)
at AspNet.Loader.Bootstrapper.LoadApplication(String appId, String appConfigPath, IProcessHostSupportFunctions supportFunctions, LoadApplicationData* pLoadAppData, Int32 loadAppDataSize)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
at System.Web.Hosting.ProcessHost.System.Web.Hosting.IProcessHostLite.ReportCustomLoaderError(String appId, Int32 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net azure

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

通过System.Linq.Expressions.Expression创建表达式时,LINQ to Entities无法识别方法'Boolean HasFlag(System.Enum)'

我们正在使用System.Linq.Expressions.Expression构建自定义表达式,这些表达式应用于.Where()我们的IQueryable.

我想要实现的是,将该.HasFlag()方法(在EF 6.1中引入)应用于随后在.Where()表达式中使用的属性.

我有以下代码:

var memberExpression = propertyExpression as MemberExpression;
var targetType = memberExpression?.Type ?? typeof(decimal?);
var value = Enum.Parse(type, searchValue);
var hasFlagMethod = targetType.GetMethod(nameof(Enum.HasFlag));
var hasFlagExpression = Expression.Call(propertyExpression, hasFlagMethod, Expression.Convert(Expression.Constant(value), typeof(Enum)));
Run Code Online (Sandbox Code Playgroud)

显示的值propertyExpression显示为,{x.Type}hasFlagMethod显示为{Boolean HasFlag(System.Enum)}对我来说都很好.

的价值hasFlagExpression就是{x.Type.HasFlag(Convert(Foo))}它看起来也完全没什么问题,除了Convert(Foo)一部分,但这样做是必要的otherwhise我会得到另一个异常,它是抱怨,因为它是不是参数不能应用此方法System.Enum.

在我们枚举的时候IQueryable,.Where()我们得到以下异常:

NotSupportedException: LINQ to Entities does not recognize the method
'Boolean HasFlag(System.Enum)' method, …
Run Code Online (Sandbox Code Playgroud)

c# linq enums entity-framework

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

在 AssemblyInfo.cs 中引用项目时发布预编译的 ASP.NET 失败

当我们尝试在发布期间启用预编译的情况下发布我们的 ASP.NET 应用程序时,它会失败,因为我们引用了AssemblyInfo.cs文件中的项目。

这是我们的项目结构:

Project.WebUI (ASP.NET MVC App on .NET 4.6.2)
Project.Resources (Class Library on .NET 4.6.2)
Project.Domain (Class Library on .NET 4.6.2)
Project.Services (Class Library on .NET 4.6.2)
Run Code Online (Sandbox Code Playgroud)

AssemblyInfo.csProject.WebUI我们引用Project.Resources是这样的:

using Project.Resources;

....

[assembly: AssemblyVersion(VersionInformation.FileVersion)]
[assembly: AssemblyFileVersion(VersionInformation.FileVersion)]
[assembly: AssemblyInformationalVersion(VersionInformation.ProductVersion)]
Run Code Online (Sandbox Code Playgroud)

VersionInformationProject.Resources 中的静态类。

所有其他程序集也有这些参考 AssemblyVersion

当我们构建(调试或发布)时,它将通过而没有任何错误。当我们发布Project.WebUI项目时,我们收到以下错误:

Severity    Code    Description Project File    Line    Suppression State
Error       The type or namespace name 'Project' could not be …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

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

ICollection的表达式<T> .Any(Func <T,bool>)

我们假设我有以下模型:

public class Department
{
    public ICollection<Employee> Employees { get; set; }
}

public class Employee
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想为此建立一个Expression:

departments.Where(x => x.Employees.Any(y => y.Name.Contains("foo")))
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

var departmentParameterExpression = Expression.Parameter(typeof(Department), "x");
PropertyExpression departmentListProperty = { x.Departments } // Value of the Expression shown in the debugger, actual code is some property helper to get the property by Name
var employeeParameterExpression = Expression.Parameter(typeof(Employee), "y");
PropertyExpression employeeNameProperty = { y.Name } // Same as …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

从列表A中选择属性不在列表B中的项目

我有一个List<Broadcast>和该Broadcast对象有一个名为的属性Guid.现在我需要找到Broadcast该列表中Guid属性不是项目的所有对象List<Guid>.我找到了一个解决方案,Except();但它对我不起作用.

Broadcasts.Where(x => x.Guid).Except(readBroadcasts);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# linq

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

在 DataGridTextColumn 中绑定 ViewModel 属性

对于一个应用程序,我需要创建一个DataGridDataGridTextColumn它有MultiBinding。第一个Binding使用 ItemsSource 中给出的属性,第二个Binding应该使用我的 ViewModel 中的属性。

<DataGridTextColumn Header="Hourly wage" SortMemberPath="HourlyWage">
    <DataGridTextColumn.Binding>
        <MultiBinding StringFormat="{}{0}{1}">
            <Binding Path="HourlyWage" />
            <Binding Path="CurrencyUnit" />
        </MultiBinding>
    </DataGridTextColumn.Binding>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

在这种情况下HourlyWage是当前项目的属性。CurrencyUnit是我的 ViewModel 中的一个属性。如果我启动我的应用程序,此列是空的。那么我如何让它同时显示呢?

我使用 Catel 作为我的 MVVM 框架和 MahApps.Metro 作为我的 GUI。我无法在我的视图中创建 ViewModel,因为它由 Catel 处理。

问候, 斯特凡

c# data-binding wpf mvvm catel

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

标签 统计

c# ×7

asp.net ×3

linq ×3

.net ×1

azure ×1

catel ×1

data-binding ×1

entity-framework ×1

enums ×1

mvvm ×1

razor ×1

wpf ×1