Обновление ASP.NET MVC до ASP.NET MVC3 FormCollection кажется совершенно другим

Алло,

Я пытаюсь обновить веб-сайт с ASP.NET MVC1 до ASP.NET MVC3 и с VS2008 до VS2010. Пока что все идет хорошо, за исключением того, что класс FormCollection в двух визуальных студиях выглядит совершенно по-разному.

Я заметил, что в VS2008 есть FormCollection для версии 1 и версии 2 (предположительно MVC1 и MVC2), и я не вижу больших изменений с ними, но в VS2010 единственный класс FormCollection есть запечатанный класс, который является вызывает у меня горе, так как у меня есть класс до этого, который наследуется от FormCollection.

Кто-нибудь знает, переместился ли FormCollection, который я знал и любил, или я должен просто переписать все, используя класс, который его наследует (много всего)?

С уважением, Гарри

1 ответ

Решение

Проработал мой путь сейчас. Вместо наследования FormCollection теперь у него есть свое поле "form'который является FormCollection вместо этого, и команды просто действуют на это.

Редактировать:

Люди просили коды, так вот старый класс:

using System;
using System.Linq.Expressions;
using System.Web.Mvc;
using OpenProjects.Core;

namespace ProjectSupport.Web.Test
{
    public class FormFor<TEntity> : FormCollection where TEntity : class
    {
        public FormFor<TEntity> Set<TReturn>(Expression<Func<TEntity, TReturn>> property, string value)
        {
            this[property.PropertyName()] = value;

            return this;
        }
    }
}

А вот как это сейчас:

using System;
using System.Linq.Expressions;
using System.Web.Mvc;
using OpenProjects.Core;

namespace ProjectSupport.Web.Test
{
    public class FormFor<TEntity> where TEntity : class
    {
        private FormCollection form;


        public FormFor()
        {
            form = new FormCollection();
        }

        public FormFor<TEntity> Set<TResult>(Expression<Func<TEntity, TResult>> property, string value)
        {
            form.Add(property.PropertyName(), value);

            return this;
        }

        public FormCollection ToForm()
        {
            return form;
        }
    }
}

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

Другие вопросы по тегам