剃刀渲染问题

时间:2015-12-24 13:14:41

标签: javascript angularjs asp.net-mvc asp.net-mvc-4 razor

由于某些原因,这无法正确呈现。

我想我从另一个应用程序中复制了这个方法,并且似乎缺少剃刀正确渲染的东西

模特有

   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)

对我来说这看起来很可靠,除了我的页面看起来像这样 enter image description here

所以我的问题是为什么这不起作用,我正在使这个应用程序减少M $ oft Razor和更多AngularJs(我应该在Angular.Js中更好地处理它)并且不能解决这个问题。然而,我也想知道为什么这不起作用(一般程序员强迫需要知道原因。)

编辑:模型似乎构建正确我设置了断点。

2 个答案:

答案 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);