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本身包含隐藏字段