Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 将“编辑”和“添加视图”页面组合到单个操作中_Asp.net Mvc_Controller - Fatal编程技术网

Asp.net mvc 将“编辑”和“添加视图”页面组合到单个操作中

Asp.net mvc 将“编辑”和“添加视图”页面组合到单个操作中,asp.net-mvc,controller,Asp.net Mvc,Controller,在我的控制器中,我在querystring中检查articleID,如果它存在,我将呈现编辑视图页面,否则我将呈现添加视图页面 现在在我的编辑页面中,ViewData中的某些类有时可能为null 在编辑页面中放置我想要预填充的文本框 如何将文本预填充到字段中,同时防止空对象/属性?类型安全选项是定义两个ViewModel,而不是一个。一个用于添加页面,一个用于编辑页面。如果它们有很多公共数据,并且保证永远不会为null,则可以在公共基类上实现这些属性,但这不是必需的 当您决定显示添加视图时,将返

在我的控制器中,我在querystring中检查articleID,如果它存在,我将呈现编辑视图页面,否则我将呈现添加视图页面

现在在我的编辑页面中,ViewData中的某些类有时可能为null

在编辑页面中放置我想要预填充的文本框


如何将文本预填充到字段中,同时防止空对象/属性?

类型安全选项是定义两个ViewModel,而不是一个。一个用于添加页面,一个用于编辑页面。如果它们有很多公共数据,并且保证永远不会为null,则可以在公共基类上实现这些属性,但这不是必需的

当您决定显示添加视图时,将返回一个带有适当ViewModel的ViewResult

当决定显示编辑视图时,将返回带有该ViewModel的ViewResult

然后,每个视图都可以是完全基于该ViewModel类型的强类型视图


这详细说明了该方法。

类型安全选项是定义两个视图模型,而不是一个。一个用于添加页面,一个用于编辑页面。如果它们有很多公共数据,并且保证永远不会为null,则可以在公共基类上实现这些属性,但这不是必需的

当您决定显示添加视图时,将返回一个带有适当ViewModel的ViewResult

当决定显示编辑视图时,将返回带有该ViewModel的ViewResult

然后,每个视图都可以是完全基于该ViewModel类型的强类型视图


这详细说明了这种方法。

这种方法的问题是,如果我有3个查看页面,我必须维护所有3个!i、 e.在一个文本框中添加一个文本框,意味着需要担心3个更改等。正如我在另一个答案中所写,您可以对公共数据使用共享视图(.ascx),因此您只需要在一个地方维护它。这种方法的问题是,如果我有3个视图页面,我必须维护所有3个页面!i、 e.在一个文本框中添加一个文本框,意味着需要担心3个变化等。正如我在另一个答案中所写的,您可以对公共数据使用共享视图(.ascx),因此您只需要在一个地方维护它。我认为这个问题的标题应该是“添加”而不是“年龄”?我认为这个问题的标题应该是“添加”而不是“年龄”?