背景
尝试在ASP.NET MVC中呈现局部视图时,我收到以下错误.我是ASP.NET MVC的新手,我确信错误很容易解决,这源于我缺乏完整的理解.
问题(对于那些不想阅读所有内容的人):
导致此错误的原因是什么?
异常详细信息::
System.InvalidOperationException传递到字典中的模型项是类型,'MyApp.Models.ClassroomFormViewModel'但此字典需要类型为'System.Collections.Generic.IEnumerable1 的模型项 [MyApp.Models.ClassroomFormViewModel]'.
的entites
我有两个父/子关系的实体.
Classroom StickyNote
------------ -----------
Id 1 ----- Id
Name \ Name
(...) \ Content
---- * ClassroomID
模型
在ModelStickyNote中,内容保存在不同的表中,并进行访问(使用Linq-to-SQL以下方法:
public IQueryable<StickyNote> GetStickyNotesByClassroom(Classroom classroom)
{
return from stickynote in db.StickyNotes
where stickynote.ClassroomID == classroom.ID
select stickynote;
}
Run Code Online (Sandbox Code Playgroud)
错误
我创建了一个显示StickyNote内容的部分视图,因为它"属于"它所在的教室.我遇到的问题是我无法显示它,并收到以下错误:
传递到字典中的模型项是类型:
'MyApp.Models.ClassroomFormViewModel'但是这个字典需要类型为'System.Collections.Generic.IEnumerable1 的模型项 [MyApp.Models.ClassroomFormViewModel]'.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.异常详细信息::
System.InvalidOperationException传递到字典中的模型项是类型,'MyApp.Models.ClassroomFormViewModel'但此字典需要类型为'System.Collections.Generic.IEnumerable1 的模型项 [MyApp.Models.ClassroomFormViewModel]'. …
方法链接是返回对象本身的对象方法的实践,以便为另一个方法调用结果.像这样:
participant.addSchedule(events[1]).addSchedule(events[2]).setStatus('attending').save()
Run Code Online (Sandbox Code Playgroud)
这似乎被认为是一种很好的做法,因为它产生可读代码或"流畅的界面".但是,对我来说,它似乎打破了对象方向本身隐含的对象调用符号 - 结果代码并不表示对前一个方法的结果执行操作,这通常是预期面向对象的代码的工作方式:
participant.getSchedule('monday').saveTo('monnday.file')
Run Code Online (Sandbox Code Playgroud)
这种差异设法为"调用结果对象"的点符号创建两种不同的含义:在链接的上下文中,上面的示例将读作保存参与者对象,即使该示例实际上是为了保存时间表getSchedule收到的对象.
我知道这里的区别在于是否应该调用被调用的方法返回某些东西(在这种情况下,它会返回被调用对象本身以进行链接).但是这两种情况与符号本身无法区分,只能从被调用方法的语义中区分出来.当不使用方法链接时,我总是可以知道方法调用对与前一个调用的结果相关的操作进行操作- 使用链接,这个假设会中断,并且我必须在语义上处理整个链以了解实际的对象是什么真的叫.例如:
participant.attend(event).setNotifications('silent').getSocialStream('twitter').postStatus('Joining '+event.name).follow(event.getSocialId('twitter'))
Run Code Online (Sandbox Code Playgroud)
最后两个方法调用引用getSocialStream的结果,而之前引用的是参与者.也许在上下文发生变化的情况下实际编写链是不好的做法(是吗?),但即使这样,你也必须不断检查看起来相似的点链是否实际上保持在同一个上下文中,或者只对结果起作用.
对我来说似乎虽然表面链接表面确实产生可读代码,但重写点符号的含义只会导致更多的混淆.因为我不认为自己是编程大师,我认为错误是我的.那么:我错过了什么?我是否理解方法链以某种方式错误?在某些情况下,方法链接特别好,还是某些特别糟糕的情况?
旁注:我理解这个问题可以理解为一个被掩盖为问题的意见陈述.然而,它并非如此 - 我真的想要理解为什么链接被认为是良好的实践,以及我认为它打破固有的面向对象的符号在哪里出错.
我正在尝试让我commit-build.bat执行其他.BAT文件作为构建过程的一部分.
内容commit-build.bat:
"msbuild.bat"
"unit-tests.bat"
"deploy.bat"
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但commit-build.bat只执行list(msbuild.bat)中的第一项.
我已经分别运行每个文件没有问题.
我下载了一个WPFToolkit源代码,因为我想覆盖DatePicker的默认通用模板.例如,我想覆盖此TextBox:
<primitives:DatePickerTextBox x:Name="PART_TextBox"
Grid.Row="0" Grid.Column="0"
Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch" />
Run Code Online (Sandbox Code Playgroud)
这意味着在我的项目中写这个:
<Style TargetType="{x:Type toolkit:DatePickerTextBox}">
<Setter Property="Text" Value="Bitte wählen" />
<Setter Property="MinHeight" Value="20" />
Run Code Online (Sandbox Code Playgroud)
工作得很好.但如果我想换VerticalContentAlignment="Stretch"到VerticalContentAlignment="Center"?? 默认样式始终覆盖它.谢谢你的回复!
可能重复:
在SVG中包含SVG文件
SVG中的fill属性接受一个url来指向一个渐变/模式元素,一个所谓的'paint server'的实例.
问题:是否可以在任何浏览器(当然,不是IE)中使用外部SVG文件中定义的渐变?喜欢,在rect.svg,
<rect fill="url(grad.svg#my_grad)" />
Run Code Online (Sandbox Code Playgroud)
和相应的<linearGradient />元素grad.svg?
这将是非常好的,因为那时可以将他的所有渐变/模式存储在一个文件中并获得缓存...
干杯,
更新:这个问题,就其含义而言,是SVG中包含SVG文件的副本(其中问题至少得到了Firefox的回答).我保持开放,因为我认为标题和标签更有可能被你找到.
在我使用自己的队列之前NSMutableArray,我想知道是否有更多可用的标准.我没有在Apple文档中看到任何内容,但如果没有人们使用的某个地方没有Queue实现,我会感到惊讶.Java破坏了我!
我试图在HashMap中找到一个键.我可以使用'get'打印所选键,但是当我在if语句中使用'containsKey'时,找不到它.
我知道密钥存在于Map中,但它一直返回false.人们有什么想法?
我的代码:
public static boolean checkLowerStructuralSupport(Location location) {
boolean hasSupport = false;
Location supportingLocation = new Location(location.getX(), location.getY(), location.getZ() - 1);
System.out.println(_levels.get(supportingLocation.getZ()).getLevelSites2().get(supportingLocation)); //works
if (_levels.get(supportingLocation.getZ()).getLevelSites2().containsKey(supportingLocation)) {
hasSupport = true;
} else {
hasSupport = false;
}
return hasSupport;
}
Run Code Online (Sandbox Code Playgroud)
以下是Location类的代码:
public class Location {
protected int _x;
protected int _y;
protected int _z;
public Location(int xAxis, int yAxis, int zAxis) {
this._x = xAxis;
this._y = yAxis;
this._z = zAxis;
}
public void equals() {
//not implemented yet
} …Run Code Online (Sandbox Code Playgroud) 这是汇编程序吗?有人可以指出我们在汇编程序到asp.net时代的编程语言的进展,即语言的时间顺序吗?
我有:
void add_all_msgs(std::deque<Message>::iterator &iter);
Run Code Online (Sandbox Code Playgroud)
如何使该功能"通用",所以它可以采取任何类型的输入器?只要迭代器迭代Message,我就不在乎它是否正在迭代一个deque,一个向量或其他东西. - 这在C++中是否可以直接进行?