Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何使用editorfor隐藏主键输入字段_Asp.net Mvc_Asp.net Mvc 4_Html Helper - Fatal编程技术网

Asp.net mvc 如何使用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,所以

嗨,我正在使用Editorfor()制作一个小表单,将视图模型提交给控制器。Editorfor()可以很好地打印模型的输入字段,但也可以打印主键字段。所以我想隐藏主键字段

@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设计器执行相同的操作?请看此处(底部)或此处