Asp.net mvc 如何使用editorfor隐藏主键输入字段
嗨,我正在使用Editorfor()制作一个小表单,将视图模型提交给控制器。Editorfor()可以很好地打印模型的输入字段,但也可以打印主键字段。所以我想隐藏主键字段Asp.net mvc 如何使用editorfor隐藏主键输入字段,asp.net-mvc,asp.net-mvc-4,html-helper,Asp.net Mvc,Asp.net Mvc 4,Html Helper,嗨,我正在使用Editorfor()制作一个小表单,将视图模型提交给控制器。Editorfor()可以很好地打印模型的输入字段,但也可以打印主键字段。所以我想隐藏主键字段 @Html.EditorFor(m=>m.viewmodel) 这是我的标记 @Html.HiddenFor(m => m.viewmodel.Id); @Html.EditorFor(m=>m.viewmodel) 我已经试过了,但不起作用。我想直接创建一个模型,但我使用的是EF Designer,所以
@Html.EditorFor(m=>m.viewmodel)
这是我的标记
@Html.HiddenFor(m => m.viewmodel.Id);
@Html.EditorFor(m=>m.viewmodel)
我已经试过了,但不起作用。我想直接创建一个模型,但我使用的是EF Designer,所以我不确定从哪里开始。请给我一个建议。使用自定义编辑器模板。例如: MyViewModel.cshtml(存储在~/Views/Shared/EditorTemplates文件夹中,结构类似于局部视图): 然后,您只需在视图中需要使用它的模型上调用EditorFor,MVC就会知道如何使用您的自定义模板:
@Html.EditorFor(m => m.MyViewModel)
要使用不基于类型名称的自定义显示模板,还可以使用如下所述的
[UIHint]
属性:使用自定义编辑器模板。例如:
MyViewModel.cshtml(存储在~/Views/Shared/EditorTemplates文件夹中,结构类似于局部视图):
然后,您只需在视图中需要使用它的模型上调用EditorFor,MVC就会知道如何使用您的自定义模板:
@Html.EditorFor(m => m.MyViewModel)
要使用不基于类型名称的自定义显示模板,还可以使用如下所述的[UIHint]
属性:尝试以下操作:
[HiddenInput(DisplayValue = false)]
public int ProductID { get; set;
试试这个:
[HiddenInput(DisplayValue = false)]
public int ProductID { get; set;
不要为密钥属性创建任何字段。如果没有要检查的字段,验证就没有什么可抱怨的。稍后,您可以在控制器中为主键提供一个值。不要为您的键属性创建任何字段。如果没有要检查的字段,验证就没有什么可抱怨的。稍后,您可以为控制器中的主键提供一个值。如何使用EF设计器执行相同的操作?请看此处(底部)或此处如何使用EF设计器执行相同的操作?请看此处(底部)或此处