我有部分视图作为_Layout.cshtml的一部分,因此它在多个页面上呈现.将局部视图视为在网站上的每个页面上显示的菜单.
当点击局部视图菜单中的其中一个链接时,我只能访问/看到被称为局部视图的Action Method,就像它的名字一样.
但我真正需要的是在单击项目时部分视图处于打开状态的视图.
我怎么能得到这个?
我正在关注复数C++课程,其中包含以下代码:
#include <iostream>
template <class T>
T max(T& t1, T& t2)
{
return t1 < t2 ? t2 : t1;
}
int main()
{
std::cout << "Max of 33 and 44 is " << max(33, 44) << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我键入了这段代码,但与课程代码不同,我收到一条错误消息:
C2664: 'max' : cannot convert parameter 1 from 'int' to 'int &'
Run Code Online (Sandbox Code Playgroud)
本课程中的代码是用Visual Studio Express 2010编写的,而我的代码是用Visual Studio Ultimate 2010编写的.
编辑
感谢所有人(甚至是凯特格雷戈里本人)提供答案并清理所有内容.
我正在尝试构建一个小型MVVM测试应用程序,但无法真正计算出如何在MainWindow中显示我的用户控件.
My Solution Explorer:
我有一个资源字典:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:MVVM.ViewModel"
xmlns:vw="clr-namespace:MVVM.View">
<DataTemplate DataType="{x:Type vm:ViewModel}">
<vw:View />
</DataTemplate>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
我得到了我的观点:
<UserControl x:Class="MVVM.View.View"
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"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<DataTemplate x:Key="PersonTemplate">
<StackPanel>
<TextBlock Text="{Binding FirstName}" />
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<ListBox ItemsSource="{Binding Path=Persons}"
ItemTemplate="{StaticResource PersonTemplate}" />
</UserControl>
Run Code Online (Sandbox Code Playgroud)
和我的主窗口
<Window x:Class="MVVM.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:MVVM.ViewModel"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary Source="MainWindowResources.xaml" />
</Window.Resources>
<Grid>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud) 我有以下内容:
错误说"clr-namespace"URI指的是程序集中未包含的名称空间"{0}".
我已经建立并重建但没有任何反应.我确信这一定必须有效,因为我下载的WPF演示应用程序具有相同的功能.这是怎么回事?
我正在通过"算法入门"第3版.解释的第一件事就是插入排序.在页18上有一些伪代码:
A = {5,2,4,6,1,3};
INSERTION-SORT(A)
1 for j = 2 to A.length
2 key = A[j]
4 i = j - 1
5 while (i > 0 and A[i] > key)
6 A[i + 1] = A[i]
7 i = i - 1
8 A[i + 1] = key
Run Code Online (Sandbox Code Playgroud)
它说使用伪代码可以很容易地将它翻译成任何一种语言(C,C++,Java,他们没有提到,但我猜C#也是如此).由于我使用C#编程,我将其翻译为LinqPad.
int[] a = { 5, 2, 4, 6, 1, 3 };
for (var j = 1; j < a.Length; j++)
{
var key = a[j];
var i = j - …
Run Code Online (Sandbox Code Playgroud) 我压倒一切OnModelCreating
,在方法中就是这条线base.OnModelCreating(modelBuilder);
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
看一下如何实现这个的代码示例和手册,我感到困惑的是我是否需要它.有时它在那里,有时不在.有时在方法开始时,有时在结束时.
我该怎么办?
当我有一个Dictionary<string, int> actual
然后Dictionary<string, int> expected
用与实际相同的值创建一个全新的.
调用Assert.That(actual, Is.EqualTo(expected));
使测试通过.
使用Assert.That(actual, Is.EquivalentTo(expected));
测试时不通过.
EqualTo()
和之间有什么区别EquivalentTo()
?
编辑:
测试未通过时异常的消息如下:
Zoozle.Tests.Unit.PredictionTests.ReturnsDriversSelectedMoreThanOnceAndTheirPositions:
Expected: equivalent to < [Michael Schumacher, System.Collections.Generic.List`1[System.Int32]] >
But was: < [Michael Schumacher, System.Collections.Generic.List`1[System.Int32]] >
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
[Test]
public void ReturnsDriversSelectedMoreThanOnceAndTheirPositions()
{
//arrange
Prediction prediction = new Prediction();
Dictionary<string, List<int>> expected = new Dictionary<string, List<int>>()
{
{ "Michael Schumacher", new List<int> { 1, 2 } }
};
//act
var actual = prediction.CheckForDriversSelectedMoreThanOnce();
//assert
//Assert.That(actual, Is.EqualTo(expected));
Assert.That(actual, Is.EquivalentTo(expected)); …
Run Code Online (Sandbox Code Playgroud) 我有一个服务层,我的PredictionService需要知道某个Race是否存在.RaceService有一个方法DoesRaceExist()
,但我不确定服务是否可以通信.
这也引出了一些其他问题.可以说我有一个Predictions.aspx
页面.我使用MVP实现,因此当首次请求页面时,Initialize()
演示者中的方法将运行.在Predictions.aspx
需要多条信息,从预测和比赛,甚至更多.我应该从他们适当的服务中询问所有这些部分,还是应该只查询一次数据库并一次性获取我需要的所有信息?问题在于选择哪个服务,然后服务可能不仅仅是中继它的目的.
什么是最好的方式?
我想让int IDictionary<int, Driver>
稍微不那么模糊它的含义,所以我想也许包装它会是一个好主意.结果将是这样的IDictionary<finishPosition, Driver>
.
最好,finishPosition应该像这样分配finishPosition = 1
.
我不知道这是否可行以及如何实现.
我从哪里开始?
在学习程序的过程中,一个人会遇到设计模式,架构选择等.对于我来说,我从概念上理解DI,IoC以及它们为什么需要/好.模块化,低耦合高内聚 - 我明白了.
例如,我正在使用MVP模式构建一个小型测试网站,其中演示者没有具体的视图,但使用了View实现的接口.它还有一个服务层(位于演示者和BLL之间)的引用,同样没有什么具体的,使用一个接口.所有好东西.
(手动)IoC正在向上推动具体对象的实例化,以至于对象需要在某个地方注入.换句话说,依赖性仍然存在,它只是更高.输入IoC容器.并进入沮丧.
我知道他们在那里,我知道他们用的是什么.我选择使用ninject.凉.所以,我开始寻找.在我的下载中,我有一堆文件:
另一个文件夹,称为扩展
好的...一堆文件.哪个用?我不知道.我在哪里放置它们?我需要所有这些吗?问题问题......
也许看一些手册.Ninject wiki @ github.对.我开始阅读 - 为什么要使用Ninject?手动依赖注入,使用Ninject依赖注入 - 关于剑和匕首等的好例子.但我没有在任何地方阅读如何实际使用它.我在哪里将它放在Visual Studio中?怎么称呼它?怎么样?
此外,它提供了以下代码:
Bind<IWeapon>().To<Sword>();
Run Code Online (Sandbox Code Playgroud)
它说每次调用IWeapon时都会给出剑的实现.呃......好吧,还有一把匕首 - 也许我不想每次都得到一把剑,例如IWeapon在我的构造函数中作为参数,但是怎么做?它没有说!我每次使用IWeapon时都会被一把剑困住吗?如果没有,那么改变的代码是什么呢?如何?
它说当你拥有一堆构造函数时,它只会占用参数最多的构造函数.好的.如果构造函数的参数比构造函数少,那么它的作用是什么呢?我不能将ninject与这些构造函数一起使用吗?或者......它是如何工作的?再一次 - 它没有在任何地方说.诅咒!
在wiki中,有一个指向SO上最具争议的帖子的链接.这是关于一个名叫乔尔的人如何说出一些关于IoC的事情,它能够引发火焰战争/书呆子.但你知道吗?我敢说我对这个人来说是个根本.为什么?也许IoC的概念很简单,但是通过上帝 - 最终知道如何使用它,在某些情况下如何做等等真的非常令人沮丧.搜索谷歌大多没有任何用处,或者确实需要阅读其中很复杂的内容.我发现这个人在某种意义上可能是正确的 - 因为很难理解概念并向那些不理解你认为简单的事情的人解释.
为什么不能把它更像"下载文件 - 获得该文件,并将其置于方便的位置,然后去到Visual Studio,使一个新的地图和基准的DLL要使用它做这些步骤",然后解释每一步有一个非常好的和详细的原因.没有代码片段.这令人沮丧.
所以,有人可能想知道我的问题是什么.好吧,我想使用Ninject.我需要什么?我在哪里放置它?我如何让它工作?在我拥有IWeapon的任何地方,我都必须被卡住吗?当太阳在外面照耀时,我在工作中做什么?
我有一个Dictionary<int int>
.当我检查字典中的键的数字并且它在其中时,我希望它返回数字,否则我希望linq查询返回0.
像下面这样的东西,除了工作
var t = (from result in results
where result.Key == 3
select result.Key != null ? result.Value : 0).First();
Run Code Online (Sandbox Code Playgroud)
因为问题是当列表中没有数字时,序列不包含任何元素,因此您无法使用null或count进行检查.
当我在我的集合中有重复项时,我想返回true,否则,我想返回false.
我有以下linq查询.
var t = from i in selectedDrivers
group i by i.Value into g
where g.Count() > 1
select g.Count() > 1;
Run Code Online (Sandbox Code Playgroud)
但问题是,当存在多个重复时,它将返回多个trues,如果没有任何重复,则不返回任何内容(应该为false).
c#-4.0 ×4
c# ×3
architecture ×2
wpf ×2
.net ×1
algorithm ×1
binding ×1
c++ ×1
ninject ×1
nunit ×1
nunit-2.5 ×1
pseudocode ×1
unit-testing ×1