复杂对象的自定义EditorTemplate接受主对象成员而不是成员对象's成员

本文关键字:对象 成员 成员对象 EditorTemplate 自定义 复杂 | 更新日期: 2023-09-27 18:13:11

我目前正在为一个系统开发一个接口,我遇到了一个对我来说似乎很奇怪的问题。

我有一个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(在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在参数值编辑

复杂对象的自定义EditorTemplate接受主对象成员而不是成员对象's成员

我终于解决了我的问题。我只是在给我的成员赋值时出现了一个错别字,它使用了命令的名称而不是参数的名称-_-'

相关文章: