复杂对象的自定义EditorTemplate采用主对象成员而不是成员对象的成员

时间:2015-09-16 15:23:01

标签: c# model-view-controller mvc-editor-templates

我正在为一个系统开发一个界面,我面临一个对我来说很奇怪的问题。

我有一个Command类,如下所示:

public class Command
{
    public string Name { get; set; }
    public List<Parameter> Parameters { get; set; }
}

Parameter类是:

public class Parameter
{
    public string Name { get; set; }
    public string Value { get; set; } 
}

所以我创建了一个视图来在同一页面上编辑命令及其参数。我的班级Parameter有一个EditorTemplate(在Views \ Commander \ EditorTemplates中):

@model MyApplication.Models.Parameter

<div class="form-horizontal">
    <div class="form-group">
        @Html.LabelFor(model => model.Name)
        <div class="col-md-10">
            @Html.EditorFor(model => model.Name)
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Value)
        <div class="col-md-10">
            @Html.EditorFor(model => model.Value)
        </div>
    </div>
</div>

我的Command编辑器视图(在Views \ Commander中):

@model MyApplication.Models.Command

@using (Html.BeginForm())
{
    <div class="form-horizontal">
        <div class="form-group">
            @Html.LabelFor(model => model.Name)
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Parameters)
            <div class="col-md-10">
                @Html.EditorFor(model => model.Parameters)
            </div>
        </div>
    </div>

    <input type="submit" value="Save"/>
}

我的问题是我的修改视图需要Command.Name值并将其放在Parameter.Name字段中。这对某些人来说可能是显而易见的,萌芽我真的不知道是什么原因引起的。有人能指出我正确的方向吗?

编辑:假设我的命令是RunExe -path C:\FooBar.exe。当我打开此命令的“编辑”页面时,我的参数名称编辑字段中没有path,而是显示RunExe

我仍然在命令名称编辑中有RunExe,在参数值编辑中有C:\FooBar.exe

1 个答案:

答案 0 :(得分:0)

我终于设法解决了我的问题。我刚给我的成员分配了一个拼写错误,该成员使用了命令的名称而不是参数的名称-_-&#39;