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 MVC2_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

Asp.net mvc 快速表单收集问题ASP.NET MVC2

Asp.net mvc 快速表单收集问题ASP.NET MVC2,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我有一个简单的对象 public class SomeObject { public Int32 id { get; set; } public string name { get; set; } } 在强类型视图中,我允许用户编辑SomeObject.name,当表单发布时,接收方法在FormCollection中看不到SomeObject.id(它确实看到SomeObject.name)。我是否需要在表单中实际放置每个对象属性,以便在发布表单时能够访问它们 最好的做法是什么

我有一个简单的对象

public class SomeObject
{
    public Int32 id { get; set; }
    public string name { get; set; }
}
在强类型视图中,我允许用户编辑SomeObject.name,当表单发布时,接收方法在FormCollection中看不到SomeObject.id(它确实看到SomeObject.name)。我是否需要在表单中实际放置每个对象属性,以便在发布表单时能够访问它们

最好的做法是什么?我是否应该为我不打算让用户编辑的每个属性插入隐藏字段?也许我应该将整个对象放在ViewData中


谢谢

FormCollection
仅包含通过文本字段或隐藏字段发布的属性。因此,如果需要在控制器操作中使用
Id
属性,则需要将其包含在表单中。根据您在控制器操作中所做的操作,您可能会也可能不会包括它。不必为每个属性包含隐藏字段


通常,
Id
就足够了,因为它允许您稍后在给定此Id的情况下从数据存储中检索对象。

FormCollection
只包含通过文本字段或隐藏字段发布的属性。因此,如果需要在控制器操作中使用
Id
属性,则需要将其包含在表单中。根据您在控制器操作中所做的操作,您可能会也可能不会包括它。不必为每个属性包含隐藏字段


通常,
Id
就足够了,因为它允许您稍后根据此Id从数据存储中检索对象。

您将表单发布到的操作方法是什么?如果您处理GET请求的方法采用id,如果您的POST方法也采用id,并且您使用的是BeginForm helper方法,并且没有重载任何参数,form方法将id作为一个参数,您无需担心为id本身包含隐藏字段。

您发布表单的操作方法是什么样子的?如果处理GET请求的方法采用id,如果POST方法也采用id,并且您使用的BeginForm helper方法没有重载任何参数,则form方法将采用id作为参数,您无需担心为id本身包含隐藏字段