Обновление 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;
}
}
}
Для пояснения того, почему это используется, а не связующие модели, это использовалось только для тестирования, чтобы легко и быстро макетировать формы.