由于某些原因,这无法正确呈现。
我想我从另一个应用程序中复制了这个方法,并且似乎缺少剃刀正确渲染的东西
模特有
private void InitLogsToRetrieveOptions()
{
// TODO change this to retreive by DATE/TIME
string logsToRetrieveConfig = ConfigurationManager.AppSettings[LogConstants.LogsToRetrieveConfig];
var logsToRetrieveOptions = new List<string>(logsToRetrieveConfig.Split(','));
var logsToRetrieveOptionList = new List<DropdownItem>();
for (int i = 0; i < logsToRetrieveOptions.Count; i++)
{
logsToRetrieveOptionList.Add(new DropdownItem("Top " + logsToRetrieveOptions[i], logsToRetrieveOptions[i]));
}
LogsToRetrieveOptions = new SelectList(logsToRetrieveOptionList, LogConstants.DropdownItemValue);
}
WebConfig
<...>
<add key="LogsToRetrieve" value="10,20,30,50" />
</appSettings>
和索引是
@Html.LabelFor(model => model.SelectedLogsToRetrieve, new { id = "LogsToRetrieveLabel" })
@Html.DropDownListFor(model => model.SelectedLogsToRetrieve, Model.LogsToRetrieveOptions)
所以我的问题是为什么这不起作用,我正在使这个应用程序减少M $ oft Razor和更多AngularJs(我应该在Angular.Js中更好地处理它)并且不能解决这个问题。然而,我也想知道为什么这不起作用(一般程序员强迫需要知道原因。)
编辑:模型似乎构建正确我设置了断点。
答案 0 :(得分:0)
我现在看到模型不正确它应该是
public class Level {
private SpriteSheet levelSheet;
private int level;
public Level(SpriteSheet levelSheet,int newLevel) {
this.levelSheet = levelSheet;
this.level=newLevel;
}
public void render(Display displayLevel){
if(this.level == 1){
for (int y = 8; y <280; y++) {
for (int x=0; x < 230; x++) {
displayLevel.imagePixels[x+y*displayLevel.getWidth()]
= this.levelSheet.pixels[x+y*displayLevel.getWidth()];
}
}
}
}
}
因此缺少displayName。
答案 1 :(得分:0)
我不知道你的DropdownItem
课程是什么样的,但是你应该能够使用SelectListItem
类来渲染下拉项目。
string logsToRetrieveConfig = "10,20,30,50";
var logsToRetrieveOptions = new List<string>(logsToRetrieveConfig.Split(','));
var options = logsToRetrieveOptions
.Select(x => new SelectListItem { Value = x, Text = x }).ToList();
LogsToRetrieveOptions = new SelectList(options);