部分编辑器显示模型的单一属性

时间:2013-05-16 09:08:24

标签: asp.net-mvc razor

我的模型如下

 public class PlaceOrder
    {        
    public int orderCode { set; get; }
    public string Order_ID { set; get; }
    public int orderDetailCode { set; get; }
    [Required]
    public string Topic { set; get; }
    //50 more fields are there
    }

使用editorforModel显示模型中的所有字段。我希望有一个编辑器帮助器,它接受属性名称,只显示该特定属性的编辑器。

我为我的模型编写了一个创建/编辑/详细信息操作并且工作正常。我的最终目标是,我希望在详细信息视图的每个字段旁边都有编辑按钮。一旦我点击编辑它就可以更新并验证输入

修改 我正在使用以下代码段进行编辑链接

 @(Html.Awe().PopupFormActionLink()
                   .LinkText("Edit")
                   .Name("editP")
                   .Url(Url.Action("PropertyEdit", "PlaceOrder", new
                               {

                                   PropertyName =   Html.NameFor(model => model.SubjectCategoryCode),
                                   propertyValue =  Html.IdFor(model => model.SubjectCategoryCode),
                                   ordercode = Model.orderCode
                               })
                       )
                    .Title("Editor for " + Html.NameFor(model => model.SubjectCategoryCode))

我希望我传递字段名称并显示相关字段并进行验证

2 个答案:

答案 0 :(得分:0)

您可以为每个字段使用EditorFor和表单:

@using Html.BeginForm("action", "controller")
{
    @Html.EditorFor(m => m.ordercode)
    <input type="submit" />
}

@using Html.BeginForm("action", "controller")
{
    @Html.EditorFor(m => m.orderDetailCode)
    <input type="submit" />
}

当然,您需要为每个项目执行不同的操作,并且您还需要一种方法来获取其他值,因为您只向控制器发布了一个值。要实现此目的,您可以包含带有id的隐藏字段,并检索服务器上的其他值。

答案 1 :(得分:0)

这里有Html.EditorFor(m => m.Property)方法(您的模型应设置为PlaceOrder以使用此帮助程序,与任何静态类型的帮助程序一样。)

编辑:Bah,Ken​​neth更快: - )。