быстрый вопрос FormCollection ASP.NET MVC2 - PullRequest
1 голос
/ 20 июня 2010

У меня есть простой объект

public class SomeObject
{
    public Int32 id { get; set; }
    public string name { get; set; }
}

В строго типизированном виде я позволяю пользователю редактировать SomeObject.name, когда форма публикуется, получающий метод не видит SomeObject.id в FormCollection (он видит SomeObject.name). Нужно ли фактически размещать каждое свойство объекта в форме, чтобы иметь доступ к ним при публикации формы?

Какова лучшая практика, нужно ли просто вставлять скрытые поля для каждого свойства, которое я не планирую разрешать пользователю редактировать? может быть, я должен поместить весь объект в ViewData?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 июня 2010

FormCollection содержит только те свойства, которые были опубликованы в текстовых или скрытых полях.Поэтому, если вам нужно использовать свойство Id в действии контроллера, вам нужно включить его в форму.В зависимости от того, что вы делаете в действии вашего контроллера, вы можете включить или не включить его.Не обязательно включать скрытые поля для каждого свойства.

Обычно достаточно Id, поскольку оно позволяет впоследствии получить объект из хранилища данных с помощью этого идентификатора.

0 голосов
/ 20 июня 2010

Как выглядит ваш метод действий, к которому вы отправляете форму?Если ваш метод для обработки запросов GET принимает идентификатор, если ваш метод POST также принимает идентификатор, и вы используете вспомогательный метод BeginForm без перегрузки ни одного из параметров, метод формы примет идентификатор в качестве параметра, и вам не потребуетсябеспокоиться о включении скрытых полей для самого идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...